得到HttpStatusCodeResult的狀態說明我有一個表格使用Ajax.BeginForm()
如何由JavaScript
<% using (Ajax.BeginForm("UpdateCompanyShop", "CompanyShop", FormMethod.Post,
new AjaxOptions { OnSuccess = "updateList", OnFailure = "onError",
UpdateTargetId="slist", LoadingElementId = "loading" }))
控制器動作的代碼創建的象下面這樣:
if(string.IsNullOrEmpty(company.Address))
return new HttpStatusCodeResult(418, "Please fill in address");
else if (company.DistrictID < 0)
return new HttpStatusCodeResult(418, "Please select district");
else
return new HttpStatusCodeResult(418, "Error saving data");
我AjaxOptions我用onFailure處= 「onerror的」有我這樣的客戶端腳本
function onError(response, status, error) {
var statusDescription = ***something***;
alert(statusDescription);
}
我在Jav中使用調試器aScript但找不到StatusDescription
(HttpStatusCodeResult
中的第二個參數)
任何想法如何獲得狀態描述?或者我根本不應該使用HttpStatusCodeResult
?在AJAX提交中返回錯誤(除了驗證)的正確方法是什麼?
塞爾吉,我使用調試器來檢查,有4個屬性。在我的情況下,它們的值readyState = 4,responseText =「」,status = 418和statusText =「error」,它們都不等於statusDescription字符串。 – newcoder 2011-03-21 16:05:58
@newcoder - 我認爲這是因爲你沒有在你的MVC應用程序中使用不引人注意的JavaScript;拿起一個帖子:[ASP.NET MVC 3中的不顯眼Ajax](http://bradwilson.typepad.com/blog/2010/10/mvc3-unobtrusive-ajax.html) – 2011-03-21 16:54:28
@Sergi Papaseit,我可以看到我如您的文章中提到的那樣,啓用了不引人注意的JavaScript。我也看到表單標籤正在使用data-ajax。唯一特別的是,ajax表單在一個部分視圖中,由動作鏈接動態加載。但是,除了返回HttpStatusCodeResult之外,一切正常。 – newcoder 2011-03-21 19:33:08