我正在使用ASP.NET MVC 4.0,我遇到了JQuery Unobtrusive Validation的奇怪行为。
我已将其相关脚本放入我的layout.cshtml中,当我打开视图并点击提交按钮时,验证消息即将到来,突然服务器调用被点击。即调试器步入POST事件的服务器代码。
所以基本上,这两件事都发生在这里。客户端验证以及服务器端事件。
我可以看到消息启动但执行似乎仍在继续并转到服务器端。
这是我的观看代码:
@using (Html.BeginForm("AddUser", "Registration", FormMethod.Post, new { enctype = "multipart/form-data", id = "frm1" }))
{
//some HTML markup
.
.
.
<div class="col-md-1 divside-left-first">
<button type="submit" value="Save" id="Btnsave" class="btn ui-state-default medium"> Submit </button>
</div>
}
我已将以下脚本放入底部的layout.cshtml文件中,并在浏览器中正确呈现它们。我查了一下。
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
除此之外,除了本机JQuery.js脚本之外,我还没有使用过这些脚本。
我已经尝试过的事情:
对于我在这里做错了什么或者没有得到任何帮助或建议,我们将不胜感激。
答案 0 :(得分:0)
经过近一天的挣扎,我终于碰巧在我的案例中找到了的解决方案。它可能是任何人的其他东西,但在我的情况下,这似乎工作:
我正在使用的JQuery版本和不显眼的验证JS的问题。他们似乎并不顺利,我发现在发生POST事件时,浏览器控制台中出现了&#34;意外令牌u&#34; 错误。
因此,在深入探索该错误时,我发现这两个JS文件之间存在某种冲突,您需要使用一个额外的JS文件来帮助消除差异并使它们完美地协同工作。那个文件是:
<强> jquery.migrate 强>
您只需在代码中添加此JS文件引用,并确保所有其他JS文件都在适当的位置,然后运行您的代码。在此之后它按预期工作。
希望这有帮助。