我正在开发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"> 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
<input id="Remember" name="Remember" type="checkbox" value="@Model.Remember" />
如果选中,它将始终发送默认值。