2011-11-10 7 views
0

私はMVC 3にアップグレードしようとしているMVCContrib 1.5を使用してASP.NET MVC 1つのウェブサイトを継承し、MVCContrib 3このための適切なMvcContrib 3の構文は何ですか?

ウェブサイトMvcContrib .For("Yes")Html.Grid

.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>              
    <%}); 
}) 

を使用するときは、次のを持っていました見出しとして文字列を含む列を作成する有効な構文はもうありません。

私はそれを.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()方法はあなただけのプロパティの値を表示したいときに使用されます - ので、あなたが好きそれを使用することができます:あなたが与えた場合Named()を使用する必要はありません

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

注意デフォルトで使用されるため、Idプロパティは[Display(Name="Yes")]がモデルに含まれています。

あなたが作成したhtmlを表示したい場合は、Custom()を使用すると、MvcHtmlStringを返すことができます。

column.Custom(p => @Html.Partial("IdPartial",p.Id)); 
関連する問題