我正在研究mvc3。我创建了一个模型,其中包含两个属性,即Name和IsSelect。
这里是。
public class DemoModel
{
public string Name { get; set; }
public bool? IsSelect { get; set; }
}
我正在传递这个模型来查看。
public ActionResult checkbox()
{
DemoModel model = getdemoModel();
return View(model);
}
[HttpPost]
public ActionResult checkbox(DemoModel model)
{
ModelState.Clear();
return View(model);
}
public DemoModel getdemoModel()
{
DemoModel demoModel = new DemoModel();
demoModel.Name = "ABC";
demoModel.IsSelect = null;
return demoModel;
}
这是我的看法。
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>DemoModel</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.IsSelect)
</div>
<div class="editor-field">
@Html.CheckBoxFor(model => model.IsSelect.Value)
@Html.ValidationMessageFor(model => model.IsSelect)
</div>
<p>
<input type="submit" value="Save" />
</p>
</fieldset>
}
当我运行它时,它给了我一个错误,即@Html.CheckBoxFor(model => model.IsSelect.Value)
在线。
可空对象必须有一个值。
但是当我将 IsSelect 值设置为它时,false
它工作正常。但它不返回 IsSelect 属性的值。它将空值返回给控制器。我认为这是一个非常简单的问题,但我想念一些东西。那么,如何处理中的空值@Html.CheckBoxFor
?以及如何将其值返回给控制器?