在ASP.NET MVC 4中获取复选框值

我正在开发ASP.NET MVC 4应用程序。这个程序有一个基本形式。我的表单的模型如下所示:

public class MyModel

{

public string Name { get; set; }

public bool Remember { get; set; }

}

在我的表单中,我具有以下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>

发布表单时,模型中的“记住”值始终为false。但是,模型中的Name属性具有一个值。我已经通过在以下位置设置断点进行了测试:

[HttpPost]

public ActionResult MyAction(MyModel model)

{

Console.WriteLine(model.Remember.ToString());

}

我不知道。为什么未设置Checkbox值?

回答:

@Html.EditorFor(x => x.Remember)

将产生:

<input id="Remember" type="checkbox" value="true" name="Remember" />

<input type="hidden" value="false" name="Remember" />

它是如何工作的:

  • 如果checkbox未选中,则表单仅提交hidden值(假)
  • 如果选中,则表单true将为模型的bool属性提交两个字段(false和true)和MVC集

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

/>

如果选中,它将始终发送默认值。

以上是 在ASP.NET MVC 4中获取复选框值 的全部内容, 来源链接: utcz.com/qa/427481.html

回到顶部