【发布时间】:2011-09-15 01:02:11
【问题描述】:
我正在从包含三个字段的 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做到的。有人可以帮我理解一种方法吗?我仍在研究模型绑定背后的想法。
【问题讨论】:
-
Html Helpers 不使用 Javascript,除了客户端验证(作为 Javascript 注入页面)。 Html Helpers 是纯服务器端代码,使用字符串帮助对象将 HTML 元素和属性拼接在一起。如果您不能使用 Javascript,并且您尝试做的事情需要客户端行为(即在您提交之前在浏览器中),那么您就不走运了。
-
鉴于此,
Html.CheckBoxFor为何退出?
标签: asp.net-mvc checkbox model-binding