在编辑页面中,我有两个性别单选按钮,一旦用户选择了性别男性或女性,该值应保存在数据库中。
我尝试了所有提出的解决方案,但都没有效果。
以下是视图页面:
<div class="form-group">
@Html.LabelFor(model => model.IsMale, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="radioLeft col-sm-3">
@Html.RadioButtonFor(model => model.IsMale, "Male", new { @checked = true })Male
@Html.RadioButtonFor(model => model.IsMale, "Female", new { @checked = false })Female
@Html.ValidationMessageFor(model => model.IsMale, "", new { @class = "text-danger" })
</div>
</div>
这是Controller Edit方法:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit( WebUser webUser)
{
if (ModelState.IsValid)
{
db.Entry(webUser).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(webUser);
}
答案 0 :(得分:1)
您的类型为Nullable<bool>
,但您要发送字符串"Male"
或"Female"
。模型绑定器应该如何知道哪一个意味着什么,哪个意味着错误?如果您有bool
类型,那么您需要传递一些布尔值,例如:
@Html.RadioButtonFor(model => model.IsMale, true) Male
@Html.RadioButtonFor(model => model.IsMale, false) Female