1

下面的代码适用于 aspx 视图引擎,我正在尝试将其转换为 razor,如下所示。问题是第一列不显示。

我使用操作方法将第一列转换为链接。使用剃刀它(第一列)根本不会在页面中呈现。网格的其余部分很好。

可能是什么问题呢?

@{Html.Grid(Model.Orders).Attributes(style => "width: 100%;").Columns(
column => {
    column.For(x => x.OrderNumber).Action(p => {
        @:<td>
        Html.ActionLink(
            p.OrderNumber.ToString(),
            "orderdetail",
            "OrderUpdate",
            new { id = p.OrderNumber, backUrl = Url.Action("OrderHistory", new { controller = "DataController", id = ViewData["id"] }) },
            new { });
        @:</td>
    }).HeaderAttributes(style => "text-align:left");

    column.For(x => x.OrderTimeV2).HeaderAttributes(style => "text-align:left");

    column.For(x => x.Status).HeaderAttributes(style => "text-align:left");

    column.For(x => x.Type).HeaderAttributes(style => "text-align:left");
}).RowStart((p, row) => { }).Render();}
4

3 回答 3

1

我已经不再使用 mvccontrib 网格,因为它在我们拥有的网格中没有多大意义。

无论如何,问题是问题中的代码不返回 html,而是将代码直接放入响应流中。以及使用 razor 呈现的列的代码,该代码在调用时将其放入流中。所以它最终会在渲染网格之前将列放入流中。

它是通过不使用网格调用的剃刀代码来解决的。

于 2011-03-05T18:55:53.477 回答
0

Ok I got it working for me with the following

 @Html.Grid(Model.Result).Columns(column => {
    column.For(u => u.Name).Named("Name");
    column.For(u => u.Code).Named("Code");
    column.For(u => Html.ActionLink("Edit", "Edit", new { id = u.Id })).Named("Edit");
于 2011-03-06T04:58:34.013 回答
0

你可以做一个自定义列来得到你想要的:

@Html.Grid(Model).Columns(column => {
  column.Custom(
    @<div>
      <em>Hello there</em>
      <strong>@item.Name</strong>
    </div>
   ).Named("Custom Column");
})

来自:MvcContrib 网格自定义列 (Razor)

我在将一些 .aspx 页面移植到 Razor 时这样做了。

于 2016-10-13T18:02:06.247 回答