0

我正在做一些可能会失败(不太可能)但可能会出错的服务器工作。我想阻止用户继续前进,所以我想禁用输入,以便他们必须刷新页面。如何根据 ModelState 错误禁用它。如果存在任何错误,请禁用此框,我只想在最初加载页面时执行此操作。我的问题不一定是如何去做,而是更多的标准和最好的方法是什么。我可以有一个 ViewBag 持有一个真正的错误来禁用它,但不确定这是否是最好的路线,有什么建议吗?

4

2 回答 2

3

让我们假设您有一个 POST 控制器操作,该操作执行一些处理并在 ModelState 失败时向其添加错误,这是非常标准的。现在在视图中,您可以:

@Html.TextBoxFor(
    x => x.SomeProperty, 
    !ViewData.ModelState.IsValid ? new { @readonly = "readonly" } : null
)

或编写一个自定义助手来完成这项工作并为您简化事情:

@Html.MyTextBoxFor(x => x.SomeProperty)

如果您需要对多个输入字段进行此行为,这可能会很有用。

于 2012-06-13T12:22:36.000 回答
0

您可以通过 jquery 查看表单是否有效:

if($('form').valid()){

}
于 2012-06-13T05:46:07.670 回答