手动将MVC模型绑定到没有HTML帮助程序的复选框

时间:2011-06-14 20:40:12

标签: asp.net-mvc checkbox model-binding

我正在从包含三个字段的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做的。有人可以帮我理解这样做的方法吗?我仍在研究模型绑定背后的想法。

1 个答案:

答案 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; }

提交时,如果选中复选框,则“接受”值=“开”。您可以顺便检测检查值。