簡體   English   中英

ASP.NET MVC 4.0中非侵入式驗證中的奇怪行為

[英]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">&nbsp;Submit&nbsp;</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腳本外,我沒有使用其他任何腳本。

我已經嘗試過的事情:

  • 將腳本放在頂部 沒用
  • 將按鈕類型從按鈕更改為輸入。 沒用
  • 嘗試將腳本而不是layout.cshtml放到剖視圖中。 沒用

對於我在這里做錯了或沒有得到的任何幫助或建議,我們將不勝感激。

掙扎了將近一天后,我終於碰巧發現了我的情況下,這種情況的解決方案。 對於任何人來說可能都是別的東西,但是在我看來,這似乎可行:

我使用的JQuery版本和不干擾用戶的驗證JS的問題。 他們似乎不太順利,每當發生POST事件時,我就會在瀏覽器控制台中看到一條錯誤消息,指出“意外令牌u”

因此,在深入研究該錯誤時,我知道這兩個JS文件之間存在某種沖突,因此您需要使用一個附加的JS文件,這將有助於消除差異並使它們完美地協同工作。 該文件是:

jquery.migrate

您只需要在代碼中添加此JS文件引用,並確保所有其他JS文件都位於適當的位置,然后運行代碼即可。 此后,它按預期工作。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM