2012-05-09 6 views
1

HTTP POSTでビューモデルがすべてのプロパティに対してnullを返す私のビューに問題があります。MVC3のPOSTでビューモデルプロパティがnullである

以下は私のビューモデルです。

public class CustomerVM 
{ 
    public List<CustomerCDTO> customerCDTO { get; set; } 
} 

上記のビューモデルでは、List<CustomerCDTO>というプロパティを作成しました。 CustomerCDTOクラス定義は次のとおりです。以下は

public class CustomerCDTO 
{ 
    public string Name { get; set; } 
    public bool Active { get; set; } 
    public bool? IsChecked { get; set; } 
} 

私の見解である:私はHTTPを実行すると

<%foreach (var item in Model.customerCDTO) {%> 
<tr> 
    <td style="text-align: center; width: 10%;" class="table-content-middle"> 
     <%if (item.Active == true) 
     {%> 
      <%=Html.CheckBoxFor(m=>item.Active)%> 
     <%} 
     else 
     { %> 
      <%=Html.CheckBoxFor(m=>item.Active)%> 
     <%}%> 
    </td> 
    <td class="table-content-middle" align="center" style="width: 80%;"> 
     <%: item.Name%> 
    </td> 
</tr> 
<%} %> 

すべてが期待どおりに動作しますが、GET、POSTに私はCustomerVM.customerCDTOためnullを取得しています。

私はそれを動作させるために何をすべきかを提案してください。あなたはそれがListの一部だという情報を含む式で各CustomerCDTOに取得されていませんのでです

おかげで、

答えて

4

代わりforループを使用してください:

<%for (var i = 0; i < Model.customerCDTO.Count; ++i) 

を基本的にあなたがから始まることに興味があるプロパティに表現m => ...決意を持っている必要があり

<%=Html.CheckBoxFor(m => m.customerCDTO[i].Active)%> 

ような表現を持つ要素を参照してください。 m、他の変数からではありません。

+0

ありがとうございます。 – aamankhaan

+0

こんにちは、私の<%= Html.CheckBoxFor(m => item.Active)%>ではうまくいきましたが、<%:item.Name%>に対してnullを与えていません...どうかお勧めします – aamankhaan

+0

@aamankhaan : 'item'とは何ですか?答えにそのような変数はありません。 – Jon

関連する問題