我使用ASP.NET MVC 4.0和我遇到了JQuery的不顯眼的驗證一個奇怪的行爲。奇怪的行爲在ASP.NET MVC 4.0
我已經把它的相關的腳本到我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腳本。
事情我已經嘗試:
- 把腳本頂部部分。沒有工作。
- 將按鈕類型從按鈕更改爲輸入。沒有工作。
- 嘗試將腳本放入剖視圖而不是layout.cshtml。沒有工作。
任何幫助或建議我在做什麼錯在這裏或沒有得到將不勝感激。
無關,但你並不需要'jQuery的。unobtrusive-ajax'(僅適用於'Ajax()'助手) –
@StephenMuecke - 好吧,讓我現在刪除它並檢查並取回。 –
jQuery.js在哪裏?它是否被加載?這可能會有所幫助:http://stackoverflow.com/questions/16136900/mvc-4-validation-firing-but-the-form-is-still-submitting。另外,在控制器的「AddUser」操作中是否有ModelState.IsValid的服務器端代碼?這可能有所幫助:http://stackoverflow.com/questions/18436284/jquery-post-still-goes-through-inspite-of-asp-net-mvc-4-validation-failure – Mortalus