3

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

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

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

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

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

4

3 回答 3

4

您可以使用自定义列:

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>
);
于 2012-01-09T20:31:35.403 回答
3

也许它可以帮助某人:

@Html.Grid(Model).Columns(column =>
    {
        column.For( c=> Html.Raw(Html.ActionLink(...).ToString() + 
            " " + Html.ActionLink(...).ToString())).Named("Actions").Encode(false);
....
于 2013-07-14T14:01:45.433 回答
1

你应该传递一个内联助手:

column.For(@<text>
    @Html.ActionLink("Edit", "Edit", new { id = item.itemID })
    @Html.ActionLink(...)
    @Html.ActionLink(...)
</text>)
于 2012-01-09T20:22:45.587 回答