【问题标题】:Multiple Html.ActionLink() within single MvcContrib.Grid column in MVC3MVC3 中单个 MvcContrib.Grid 列中的多个 Html.ActionLink()
【发布时间】:2012-01-09 20:20:39
【问题描述】:

我正试图围绕正确的语法来实现以下目标——或者至少要找出它是否可行,或者是否有更好的替代解决方案。

好的,开箱即用,当您使用 ASP.Net MVC3 下的 List 脚手架生成强类型视图时,您会得到一个简单的表,其中有一列包含两个或三个 Html.ActionLink() 项,表示常见像这样的动作: 编辑 |详情 |删除

我想使用 MvcContrib 网格并做同样的事情,但我无法找出正确的语法来让它工作。到目前为止,在我的 Index.cshtml 中,我有以下 sn-p:

@(
        Html.Grid(Model.PagedList).AutoGenerateColumns()
            .Columns(column => 
            {
                column.For(f => Html.ActionLink("Edit", "Edit", new { id = f.itemID}))
                .Named("");
            })
            .Sort(Model.GridSortOptions);
    )

但这只是给了我一列用于“编辑”,因为我希望该列包含三个操作链接——编辑、设备、删除——所有三个对于特定行都具有相同的 itemID。这是可以实现的吗?如果是这样,怎么办?如果没有,是否有替代方案?

【问题讨论】:

    标签: asp.net-mvc-3 mvccontrib-grid


    【解决方案1】:

    您可以使用自定义列:

    columns.Custom(
        @<text>
            @Html.ActionLink("edit", "edit", new { id = item.Id }) |
            @Html.ActionLink("details", "details", new { id = item.Id }) |
            @Html.ActionLink("delete", "delete", new { id = item.Id }) |
        </text>
    );
    

    【讨论】:

    • 谢谢达林,你的解决方案正是我想要的!
    • @Darin Dimitrov 如果您想在网格模型类中而不是在视图本身中做同样的事情,这会是什么样子? jeremyskinner.co.uk/2009/02/23/…
    【解决方案2】:

    也许它可以帮助某人:

    @Html.Grid(Model).Columns(column =>
        {
            column.For( c=> Html.Raw(Html.ActionLink(...).ToString() + 
                " " + Html.ActionLink(...).ToString())).Named("Actions").Encode(false);
    ....
    

    【讨论】:

      【解决方案3】:

      你应该传递一个内联帮助器:

      column.For(@<text>
          @Html.ActionLink("Edit", "Edit", new { id = item.itemID })
          @Html.ActionLink(...)
          @Html.ActionLink(...)
      </text>)
      

      【讨论】:

      • CS0834:带有语句体的 lambda 表达式无法转换为表达式树
      • @SLaks 我已经尝试过你的建议,但是,我回来了 CS0834:无法将带有语句体的 lambda 表达式转换为表达式树
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-25
      • 1970-01-01
      • 1970-01-01
      • 2011-06-03
      相关资源
      最近更新 更多