我有一個以下問題: 我有一個編輯頁面,它包含一些輸入等 - 沒有什麼不尋常的。在提交按鈕,點擊我要驗證服務器上的形式,並執行下列操作之一:MVC5行動,可以返回查看(模型)或JSON
- 回報,如果有錯誤
- 返回一些信息模型說這一切都很好
爲什麼?因爲當一切正常時我需要顯示引導模式窗口。所以我做的是(簡化):
[HttpPost]
public ActionResult EditData(DataViewModel model)
{
...
if(!ModelState.IsValid)
return View(model);
return Json(new { success = true, message = "all good" }, JsonRequestBehavior.AllowGet);
}
問題是什麼?我張貼的形式與javascript和等待回答這樣的:
{
$(document).on('click', '#submitButton', function() {
$.ajax({
dataType: "json",
url: "/Controller/EditData",
type: "POST",
data: $('#submitForm').serialize()
}).done(function (data) {
console.log(data.success + ' ' + data.message);
if (data.success) {
$('#modalBody').text(data.message);
$('#modal-window-add').modal('show');
}
});
});
}
因此,大家可以看到它的顯示模式窗口,但是當一個模型進來它沒有做任何事情在後面儘管迴應來臨,但情況完全沒有發生。
有沒有其他的選擇來解決我的問題?通常我必須在成功編輯和模式關閉時顯示該模式窗口,我需要重定向到另一個頁面 - 這很容易。我嘗試在json中包含模型,但它沒有工作,並且似乎有很多工作要手動檢查所有字段,然後在未通過驗證的輸入下顯示這些紅色錯誤。我和我有經驗的朋友討論過,但他們沒有任何基於MVC的解決方案。任何想法?
最好的問候, 丹尼爾
'console.log(data.success +''+ data.message);'顯示任何東西?記錄'數據'就像'console.log(data);並檢查對象返回什麼 – Tushar
這很有趣,但它永遠不會進入.done函數。這是爲什麼? – Aranha