我正在尝试实现这个答案的建议,但没有将显示名称存储在我的模型代码中,所以我相信这是一个单独的问题。
我有一个 MVC 视图
<%@ Page Language="C#" MasterPageFile="PathToMaster" Inherits="System.Web.Mvc.ViewPage<ModelData>" %>
和一个模型:
public class ModelData {
public bool Option1 { get; set; }
}
我有一个带有 HTML 标记的 .aspx,用于包含复选框的表单:
<label for="MyCheckbox">Your choice</label>
<%= Html.CheckBoxFor(Model=>Model.Option1, new { id="Option1", @class="checkbox", onchange="return myValidation();", name="MyCheckbox", value="Option one" } ) %>
编译时会产生以下 HTML:
<label for="MyCheckbox">Your choice</label>
<input class="checkbox" id="Option1" name="Option1" onchange="return myValidation();" type="checkbox" value="Option one" /><input name="Option1" type="hidden" value="false" />
每当我选中复选框并提交表单时,控制器操作
class MyController : Controller {
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult RequestStuff( ModelData data )
{
}
}
接收data
where Option1
is false
。
我究竟做错了什么?如何使复选框映射到模型成员?