ASP.NET MVC @ Html.Checkbox()问题

时间:2019-02-15 07:16:15

标签: asp.net asp.net-mvc

即使我的插入操作中没有Ajax脚本,在将数据插入数据库后,我的复选框仍会检查。

但是在我的第一次添加尝试中未选中它,我想在再次添加另一个数据时取消选中它

我的模特:

public bool allowance { get; set; } = false;

我的观点:

@using (Html.BeginForm("PayrollSettingsAccount2/502", "Payroll", new { a = "3", b = "12", c = "44" }, FormMethod.Post, new { id = "form_payrollaccount" }))
{ 
  @Html.CheckBoxFor(model => model.allowance, new { @id = "customCheck1", @class = "custom-control-input"})
}

1 个答案:

答案 0 :(得分:0)

如果您已选中复选框allowance并进行了表单发布,则由于ModelState,它将保持选中状态。我想让状态像表单发布前一样,请使用ModelState.Clear();

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Action(MyModel model)
{
    if (!ModelState.IsValid)
    {
        return View(model);
    }

    //do stuff

    //removes all the data from the modelstate
    ModelState.Clear();

    return View(model);
}

更多信息:https://patrickdesjardins.com/blog/modelstate-clear-is-required-to-display-back-your-model-object