我有一個項目在MVC4與C#。在這個項目中,我的控制器中的一個有一個方法來通過一個Ajax函數被調用:
[HttpPost]
public string EditPackage(int id, string newPkgName)
{
try{
//do logic here
return "OK";
}catch(Exception exc){
return "An error occurred, please try later! " + exc.Message;
}
}
此方法由以下Ajax函數調用,使用jQuery:
$.ajax({
url: $(this).data('url'),
type: 'POST',
contentType: 'application/json; charset=utf-8',
traditional: true,
data: JSON.stringify({ id: id, newPkgName: newPkgName}),
success: function() {
location.reload(true);
successNotification("Package edited successfuly!");
},
error: function (message) {
errorNotification(message);
}
});
與此問題代碼,即使服務器返回catch中的返回"An error occurred, please try later! " + exc.Message;
消息,成功函數是始終調用的函數。
爲了語言,無論我做什麼,我都不會運行錯誤函數。
爲了解決這個問題我查了一下官方文檔:
然而,由於我failry新來這個我不明白任何參數,也不知道怎樣去使用它們有效。
如何使用Ajax,jQuery和我的控制器創建包含所有可能信息的良好錯誤消息?
你可以嘗試拋出而不是返回 – 2014-12-02 10:05:05
錯誤func調用如果響應狀態不正常(200),但如果你在服務器上捕獲異常,那麼你返回的狀態OK(200)的響應,所以,簡單的不抓住異常 – Grundy 2014-12-02 10:06:33