我正在从包含三个字段的ViewModel对象数组构建一个屏幕:
public class StartViewModel {
public string Id{ get; set; }
public string Name { get; set; }
public bool Accept { get; set; }
}
然后我尝试将它绑定到我的视图中:
<input type="hidden" name="StartRequests[<%: i.ToString() %>].Name" value="<%: StartRequests.Name %>" />
<input type="hidden" name="StartRequests[<%: i.ToString() %>].Id" value="<%: StartRequests.Id%>" />
然后我想将Accept标志绑定到一个复选框。我知道复选框缺少名称属性,所以我不能立即使用它,我知道Html.CheckBoxFor将生成第二个隐藏字段,将存储该值。所以这是我的问题。
我没有能力使用javascript。我需要配置此复选框以有效调整ViewModel中的值,但我不知道如何实现这一点。 Html.CheckBox助手如何填充它生成的隐藏字段?我以为它是用javascript做的。有人可以帮我理解这样做的方法吗?我仍在研究模型绑定背后的想法。
答案 0 :(得分:0)
以下型号:
public class StartViewModel {
public string Id{ get; set; }
public string Name { get; set; }
public bool Accept { get; set; }
}
//-> Accept = false.
解决方案:
将public bool Accept { get; set; }
更改为public string Accept { get; set; }
提交时,如果选中复选框,则“接受”值=“开”。您可以顺便检测检查值。