2011-11-10 33 views
0

我用Html.Grid這是什麼適當的MvcContrib 3語法?

.Columns(column=>{ 
    column.For("Yes").Action(p =>{%> 
    <td> 
     <%=this.Hidden("category[" + i +"].Id").Value(p.Id)%> 
     <%=this.RadioButton("category[" + i + "].Interested").Value("true") %> 
    </td> 
    <%}); 

    column.For("No").Action(p =>{%> 
    <td> 
     <%=this.RadioButton("category[" + i + "].Interested").Value("false") %> 
    </td>              
    <%}); 
}) 

當在MvcContrib .For("Yes")繼承使用MVCContrib 1.5的ASP.NET MVC 1點的網站,我想升級到MVC 3和MVCContrib 3.

該網站有以下不再有效的語法來創建字符串作爲標題的列。

爲了得到它的工作,我必須將其更改爲.For(c=>"Yes"),並且我必須添加.Named("Yes")以獲取標題文本。據我所知,c=>"Yes"實際上沒有做任何有用的事情。應該去那裏?或者如果它沒有造成任何傷害,我應該離開它嗎?

另外,.Action已被棄用,它表示使用.Custom代替。我將如何轉換上述?

column.Custom(p => {%> 
    <td style="text-align:center"> 
    <%=this.Hidden("category[" + i + "].Id").Value(p.Id)%> 
    <%=this.RadioButton("category[" + i + "].Interested").Value("true") %> 
    </td> 
<% }).Named("Yes"); 

這期待一個返回值,我不知道該放什麼,也找不到很多例子。

回答

1
column.Custom(
    @<text> 
     <td style="text-align:center"> 
      @this.Hidden("category[" + i + "].Id").Value(item.Id) 
      @this.RadioButton("category[" + i + "].Interested").Value("true") 
     </td> 
    </text> 
).Named("Yes"); 
+0

感謝達林。這是完美的。 – Brandon

1

For()方法用於當你只是想顯示屬性值 - 所以你可以使用它像:

column.For(p => p.Id).Named("Yes"); 

注意你不必使用Named()如果你給模型中歸因的Id屬性a [Display(Name="Yes")],因爲這將默認使用。

當你想顯示一些你製作的html時,你可以使用Custom(),這樣你就可以返回一個MvcHtmlString。剃刀語法它可能看起來像:

column.Custom(p => @Html.Partial("IdPartial",p.Id));