【发布时间】:2017-03-06 13:47:43
【问题描述】:
在我的 MVC 视图中,我有几个复选框:
<form method="POST" id="formRegistration" action="Registration/SubmitRegistration" >
//Other code...
<input name="test1" type="checkbox" />
<input name="test2" type="checkbox" />
</form>
在控制器上,我使用 POST 请求获取数据并将其插入数据库:
public void AddRegistered(Registration r)
{
//Other code...
dParameters.Add("test1", r.test1.ToString());
dParameters.Add("test2", r.test2.ToString());
//Other code...
}
问题是即使选中了复选框,我仍然会收到 false 值。
我错过了什么?
【问题讨论】:
-
使用
Html.CheckBoxFor而不是使用手动 HTML。 -
需要使用手动HTML,我不能使用Razor。
-
复选框回发其控件的值已被选中(如果未选中则不选中。您的设置
value="false"所以它可以提交的所有内容都是false。如果您不使用HtmlHelper方法,然后不要费心使用 mvc,因为你永远不会得到正确的模型绑定。 -
对不起,我忘了删除
value="false"这是我的测试之一,你能解释一下你的意思吗:如果你不使用 HtmlHelper 方法,那么就不要费心使用 mvc,因为你永远不会得到正确的模型绑定。 完全理解你的意思对我来说非常重要。谢谢! -
@StephenMuecke:我一直在 ASP.Net 中生成手动表单,更不用说使用 javascript 等发布到 MVC 控制器中。说唯一可以将数据发布到 MVC 的东西是
HtmlHelper是天真。
标签: c# asp.net-mvc checkbox