[英]Strange behavior in Unobtrusive validation in ASP.NET MVC 4.0
我正在使用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脚本外,我没有使用其他任何脚本。
我已经尝试过的事情:
对于我在这里做错了或没有得到的任何帮助或建议,我们将不胜感激。
挣扎了将近一天后,我终于碰巧发现了我的情况下,这种情况的解决方案。 对于任何人来说可能都是别的东西,但是在我看来,这似乎可行:
我使用的JQuery版本和不干扰用户的验证JS的问题。 他们似乎不太顺利,每当发生POST事件时,我就会在浏览器控制台中看到一条错误消息,指出“意外令牌u” 。
因此,在深入研究该错误时,我知道这两个JS文件之间存在某种冲突,因此您需要使用一个附加的JS文件,这将有助于消除差异并使它们完美地协同工作。 该文件是:
jquery.migrate
您只需要在代码中添加此JS文件引用,并确保所有其他JS文件都位于适当的位置,然后运行代码即可。 此后,它按预期工作。
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.