Asp.net mvc ASP.NET:如何使复选框始终处于未选中状态,即使在提交后

Asp.net mvc ASP.NET:如何使复选框始终处于未选中状态,即使在提交后,asp.net-mvc,checkbox,unchecked,Asp.net Mvc,Checkbox,Unchecked,刚开始学习如何开发ASP.NET应用程序,我对如何使复选框始终处于未选中状态感到困惑,即使在用户勾选复选框的表单提交之后也是如此。复选框用于确认用户同意条款和条件。。。当表单提交返回一些错误时,我希望在屏幕上显示错误消息,并保持复选框未选中,无论是否勾选 我认为我有以下几点: <%: Html.CheckBoxFor(m => m.UserAgreement) %> 任何人都可以帮助我实现我所需要的?谢谢。ASP.NET MVC复选框不会保留其状态,除非您明确告诉它这样做 您

刚开始学习如何开发ASP.NET应用程序,我对如何使复选框始终处于未选中状态感到困惑,即使在用户勾选复选框的表单提交之后也是如此。复选框用于确认用户同意条款和条件。。。当表单提交返回一些错误时,我希望在屏幕上显示错误消息,并保持复选框未选中,无论是否勾选

我认为我有以下几点:

<%: Html.CheckBoxFor(m => m.UserAgreement) %>

任何人都可以帮助我实现我所需要的?谢谢。

ASP.NET MVC复选框不会保留其状态,除非您明确告诉它这样做

您在上面发布的代码表明,在返回视图时应选中“UserAgreement”(值为TRUE),而不是不选中它


除非在将视图返回给用户之前专门将UserAgreement的值设置为“true”,否则该复选框将被取消选中。类似地,如果您的操作正在接收一个UserAgreement属性设置为“true”的模型,并且在将其返回到视图之前未将其设置回“false”,则复选框将保持选中状态。

您的值将保存在ModelState属性中。以便在post后重置值。您必须清除ModelState属性中的值

尝试
ModelState.Remove(“UserAgreement”)返回视图之前。

这也困扰了我很长一段时间,甚至明确地将模型中的值设置为false也不能真正解决这个问题。我发现它还在检查ModelState集合中的值

这可能不是最干净的解决方案,但这最终对我有效:

private ActionResult DisplayView(string viewName, MyModelClass model)
{
    model.AgreeTerms = false;
    ModelState.Remove("AgreeTerms");

    return View(viewName, model);
}

嗨,内森,对不起,我在我的帖子里犯了一个错误,我已经改正了。我想把false作为一个值。如果我在提交前选中了复选框,我仍然会选中复选框。我对复选框所做的任何操作都将在提交后保留。那不是我想要的东西。。。我想让复选框始终处于未选中状态,无论它在提交前是否已选中。嗨,凯尔,我该怎么做?我以为我的最后一行代码就是这么做的?
private ActionResult DisplayView(string viewName, MyModelClass model)
{
    model.AgreeTerms = false;
    ModelState.Remove("AgreeTerms");

    return View(viewName, model);
}