在 ASP.NET MVC 4 中获取复选框值 [英] Getting Checkbox Value in ASP.NET MVC 4
问题描述
我正在开发一个 ASP.NET MVC 4 应用程序.这个应用程序有一个基本的形式.我的表单模型如下所示:
I'm working on an ASP.NET MVC 4 app. This app has a basic form. The model for my form looks like the following:
public class MyModel
{
public string Name { get; set; }
public bool Remember { get; set; }
}
在我的表单中,我有以下 HTML.
In my form, I have the following HTML.
<input id="Name" name="Name" type="text" value="@Model.Name" />
<input id="Remember" name="Remember" type="checkbox" value="@Model.Remember" />
<label for="Remember"> Remember Me?</label>
当我发布表单时,模型中的记住值始终为假.但是,模型中的 Name 属性有一个值.我已经通过在以下设置断点对此进行了测试:
When I post the form, the Remember value in the model is always false. However, the Name property in the model has a value. I've tested this by setting a breakpoint in the following:
[HttpPost]
public ActionResult MyAction(MyModel model)
{
Console.WriteLine(model.Remember.ToString());
}
我想不通.为什么未设置 Checkbox 值?
I can't figure it out. Why isn't the Checkbox value getting set?
推荐答案
@Html.EditorFor(x => x.Remember)
将产生:
<input id="Remember" type="checkbox" value="true" name="Remember" />
<input type="hidden" value="false" name="Remember" />
它是如何工作的:
- 如果
checkbox
保持未选中状态,则表单仅提交hidden
值 (false) - 如果选中,则表单提交两个字段(false 和 true)和 MVC 集
true
表示模型的bool
属性
- If
checkbox
remains unchecked, the form submits only thehidden
value (false) - If checked, then the form submits two fields (false and true) and MVC sets
true
for the model'sbool
property
<input id="Remember" name="Remember" type="checkbox" value="@Model.Remember"/>
如果选中,这将始终发送默认值.
This will always send the default value, if checked.
这篇关于在 ASP.NET MVC 4 中获取复选框值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!