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

查看:83
本文介绍了获取复选框价值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">&nbsp;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 only hidden (false)
  • If checked, then form submit two fields (false and true) and MVC set true for bool property

<input id="Remember" name="Remember" type="checkbox" value="@Model.Remember" />

This will always send default value, if checked

这篇关于获取复选框价值ASP.NET MVC 4的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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