我有以下遗留代码,我想模仿,一列中的所有动作链接。但是,我似乎无法得到Razor语法。我应该如何在剃须刀上表达?
ASPX列模板是这样的:
.Columns(column => { column.Template(o => {%> <%= Html.ActionLink("Edit","Edit",new{ id = o.DeviceID}) %> | <%= Html.ActionLink("Delete","Delete",new { id = o.DeviceID })%> <%});
我只能使用Razor获得三个独立的列,而不是对语法等的投诉,如下所示:
.Columns(columns => { columns.Template(o => @Html.ActionLink("Edit",new { id = o.ProductId })).Width(50); columns.Template(o => @Html.ActionLink("Details","Details",new { id = o.ProductId })).Width(50); columns.Template(o => @Html.ActionLink("Delete",new { id = o.ProductId })).Width(50);
如何使用Razor语法定义一个包含所有三个操作链接的模板列?
编辑:在下面的Mike的答案中尝试下面的小改编,我得到错误“只有赋值,调用,增量,减量和新的对象表达式可以用作一个语句”:
columns.Template(o => @<text>@Html.ActionLink("Edit",new { id = o.CampaignId }) | @Html.ActionLink("Delete",new { id = o.CampaignId }) </text>).Width(100);
解决方法
这是一个快速的样本,显示了绑定列和模板列:
样本#1使用@< text>< / text>句法
@(Html.Telerik().Grid(Model) .Name("Grid") .Columns(columns => { columns.Bound(m => m.UserName); columns.Bound(m => m.Email); columns.Template(@<text> @Html.ActionLink("Edit",new { id = item.UserId} ) | @Html.ActionLink("Delete",new { id = item.UserId) </text>).Width(100); }) )
Sample#2使用Action代理
@(Html.Telerik().Grid(Model) .Name("Grid") .Columns(columns => { columns.Bound(m => m.UserName); columns.Bound(m => m.Email); columns.Template(m => @Html.ActionLink("Edit",new { id = m.UserId} ) + " | " + @Html.ActionLink("Delete",new { id = m.UserId) ).Width(100); }) )
希望有帮助,如果还没有弄明白。