我正在做一些可能会失败的服务器(不太可能),但可能会出错。我想阻止用户继续前进,所以我想禁用输入,以便他们必须刷新页面。如何根据ModelState错误禁用它。如果存在任何错误,请禁用此框,我只想在最初加载页面时执行此操作。我的问题不一定是如何做到的,而是更多的标准和最佳方式。我可以拥有一个ViewBag,它可以禁用它,但不确定这是否是最佳路径,是否有任何建议?
答案 0 :(得分:3)
假设你有一个POST控制器动作做了一些处理,如果它失败了,那么它会给ModelState增加错误。现在在视图中你可以:
@Html.TextBoxFor(
x => x.SomeProperty,
!ViewData.ModelState.IsValid ? new { @readonly = "readonly" } : null
)
或者编写一个自定义帮助程序来完成工作并为您简化:
@Html.MyTextBoxFor(x => x.SomeProperty)
如果您需要多个输入字段的此行为,则可能很有用。
答案 1 :(得分:0)
您可以通过jquery找出表单是否有效:
if($('form').valid()){
}