在我的控制器中发布表单时,我会进行以下检查:
if(ModelState.IsValid)
如果模型无效,则会向ModelState
添加错误。然后将模型传递给具有验证摘要的视图。
但是,我想检查ModelState
是否有来自jQuery ready
处理程序内部的错误,以便在表单有错误时添加一些额外的行为。这可能吗?
答案 0 :(得分:28)
你可以吐出全局javascript变量:
<script type="text/javascript">
var isValid = @Html.Raw(Json.Encode(ViewData.ModelState.IsValid));
</script>
然后:
$(function() {
if (!isValid) {
alert('opa');
}
});
答案 1 :(得分:2)
@Dimitrov的一点补充回答:
<script type="text/javascript">
var isValid = '@Html.Raw(Json.Encode(ViewData.ModelState.IsValid))';
if (isValid != 'true')
// model has some errors...
</script>
在助手周围使用单个qoutes非常重要。否则,结束分号;
会导致问题。你可以编写它,也不能,它在任何情况下都会导致语法错误。除非你像我提到的那样把那些单引号放在助手身边。
答案 2 :(得分:0)
除了Darins答案:
在.cshtml中:
@Html.Hidden("IsValid", Json.Encode(ViewData.ModelState.IsValid))
JS中的
var isValid = $('#IsValid').val().toLowerCase() == "true";