asp.net-mvc – 以Razor语法为Telerik MVC Grid定义一个Template列

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 以Razor语法为Telerik MVC Grid定义一个Template列前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下遗留代码,我想模仿,一列中的所有动作链接。但是,我似乎无法得到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);
    })
 )

希望有帮助,如果还没有弄明白。

猜你在找的asp.Net相关文章