1

HTTP 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; }
}

以下は私の見解です:

<%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>
<%} %> 

HTTP GET を実行すると、すべてが期待どおりに機能しますが、POST では取得nullしていCustomerVM.customerCDTOます。

それを機能させるために何をすべきかを提案してください。

ありがとう、

4

1 に答える 1

4

CustomerCDTOこれは、 の一部であるという情報を含む式でそれぞれに到達していないためですList

for代わりにループを使用します。

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

そして、次のような式で要素を参照します

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

基本的に、他の変数m => ...からではなく、から開始することに関心のあるプロパティに式を解決する必要があります。m

于 2012-05-09T08:07:51.633 に答える