在 ASP.NET MVC 4 中获取复选框值 [英] Getting Checkbox Value in ASP.NET MVC 4

查看:28
本文介绍了在 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">&nbsp;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 the hidden value (false)
  • If checked, then the form submits two fields (false and true) and MVC sets true for the model's bool 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆