2011-01-20 33 views
1

下面的代碼與aspx視圖引擎很好地工作,我試圖將它轉換爲剃鬚刀如下。問題是第一列不顯示。MVCContrib Grid Razor問題,Column.Action不渲染

我使用操作方法將第一列轉換爲鏈接。隨着剃刀它(第一列)沒有得到渲染頁面。其餘的網格很好。

可能是什麼問題?

@{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();} 
+0

您是否找到解決方案? – Daveo 2011-03-05 04:28:42

回答

1

我已經離開使用mvccontrib網格,因爲它在我們的網格中沒有多大意義。

無論如何問題是問題中的代碼不會返回html,而是直接將代碼放入響應流中。並且使用剃刀渲染列的代碼,每次調用時都會將代碼放入流中。所以它最終會在呈現網格之前將列放入流中。

這是通過不使用網格調用的剃鬚刀代碼解決的。

0

好吧,我得到它的工作對我來說有以下

@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"); 
0

你可以做一個自定義列中得到你想要的東西:

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

來源:MvcContrib Grid Custom Columns (Razor)

我這樣做將一些.aspx頁面移植到Razor時。