2011-01-20 8 views
1

以下のコードは、aspxビューエンジンでうまくいきます。下記のコードをrazorに変換しようとしています。問題は最初の列は表示されません。MVCContribグリッドカミソリの問題、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

+0

こんにちはDaveo、私はちょうど私自身の質問に答えた – mamu

答えて

1

mvccontribグリッドを使用していないので、グリッドにはあまり意味がありません。

いずれにしても問題のコードはhtmlを返さないが、コードを直接応答ストリームに入れていた。また、呼び出されるたびにコードをストリームに入れたカミソリを使用してレンダリングされた列のコード。したがって、グリッドがレンダリングされる前に列をストリームに配置することになります。

グリッドと呼ばれる動作では、剃刀コードを使用しないことで解決しました。

0

[OK]を、私はそれはあなたが望む結果を得るためにカスタム列を行うことができ、次の

@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に移植するとき。

関連する問題