如何在MVC控制器编辑方法中保存radiobutton数据?

时间:2015-07-27 13:28:44

标签: c# asp.net-mvc radio-button edit

在编辑页面中,我有两个性别单选按钮,一旦用户选择了性别男性或女性,该值应保存在数据库中。

我尝试了所有提出的解决方案,但都没有效果。

以下是视图页面:

        <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);
    }

1 个答案:

答案 0 :(得分:1)

您的类型为Nullable<bool>,但您要发送字符串"Male""Female"。模型绑定器应该如何知道哪一个意味着什么,哪个意味着错误?如果您有bool类型,那么您需要传递一些布尔值,例如:

@Html.RadioButtonFor(model => model.IsMale, true) Male
@Html.RadioButtonFor(model => model.IsMale, false) Female