我的观点存在问题在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
。
请建议我该怎么做才能让它发挥作用。
谢谢,
答案 0 :(得分:4)
这是因为您没有使用包含CustomerCDTO
中的信息的表达式来访问每个List
。
改为使用for
循环:
<%for (var i = 0; i < Model.customerCDTO.Count; ++i)
并参考带有
等表达式的元素<%=Html.CheckBoxFor(m => m.customerCDTO[i].Active)%>
基本上,您需要将表达式m => ...
解析为您感兴趣的属性,从m
开始,而不是从其他变量开始。