[英]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.