获取复选框价值ASP.NET MVC 4 [英] Getting Checkbox Value in ASP.NET MVC 4
问题描述
我工作的一个ASP.NET MVC应用程序4。这个程序有一个基本形式。我的形式模型看起来像下面这样:
公共类为MyModel
{
公共字符串名称{;组; }
公共BOOL记住{搞定;组; }
}
在我的表单中,我有以下的HTML。
<输入ID =名称NAME =名称TYPE =文本VALUE =@ Model.Name/>
<输入ID =记住NAME =记住类型=复选框VALUE =@ Model.Remember/>
<标签=记住>&安培; NBSP;记住<?/标签>
当我发帖的形式,在模型中记住值始终为false。然而,在该模型的名称属性具有值。我在下面设置一个断点测试这样的:
[HttpPost]
公众的ActionResult MyAction(为MyModel模型)
{
Console.WriteLine(model.Remember.ToString());
}
我不明白。为什么不复选框值越来越集?
@ Html.EditorFor(X => x.Remember)
将生成:
<输入ID =记住类型=复选框VALUE =真NAME =记住/>
<输入类型=隐藏值=假名称=记住/>
它是如何工作的:
- 如果
复选框
未选中,提交表单仅隐藏
(假) - 如果选中,进而形成提交两个字段(假和真)和MVC集
真正
为布尔
属性
<输入ID =记住NAME =记住类型=复选框VALUE =@ Model.Remember/>
这将始终发送默认值,如果检查
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; }
}
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>
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());
}
I can't figure it out. Why isn't the Checkbox value getting set?
@Html.EditorFor(x => x.Remember)
Will generate:
<input id="Remember" type="checkbox" value="true" name="Remember" />
<input type="hidden" value="false" name="Remember" />
How does it work:
- If
checkbox
not checked, form submit onlyhidden
(false) - If checked, then form submit two fields (false and true) and MVC set
true
forbool
property
<input id="Remember" name="Remember" type="checkbox" value="@Model.Remember" />
This will always send default value, if checked
这篇关于获取复选框价值ASP.NET MVC 4的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!