我有一个Web Api,我有这个代码
@{
AjaxOptions addAjaxOpts = new AjaxOptions
{
// options will go here
OnSuccess = "getData",
OnFailure="selectView('add')",
HttpMethod = "Post",
Url = "/api/AccountManage/CreateAccount"
};
}
在控制器中:
[HttpPost]
public void CreateAccount(CollaborateurModel item)
{
try{}
catch{
// return failure
}
}
我需要实施failure part
来执行OnFailure
方法。
那么我该如何完成这项任务呢?
答案 0 :(得分:1)
您可以先使用Json Result(MSDN ref.)
开始摘录示例:
[HttpPost]
public ActionResult CreateAccount(CollaborateurModel item)()
{
try{
//do operations that may fail
var response = new { Success = true};
return Json(response );
}catch{
var errorResponse= new { Success = false, ErrorMessage = "error"};
return Json(errorResponse);
}
}
然后在客户端使用JQuery调用控制器:
$(function () {
$(".test-link").click(function (e) {
$.post("controllerName/CreateAccount", function (data) {
if (data.Success == true) {
alert("Success");
}
else {alert(data.ErrorMessage);}
});
return false;
}).fail(function() {
alert( "error" );
});
});
Jquery上的失败函数将处理客户端服务器可能遇到的通信问题。
有关JQuery的更多信息,您可以找到它here。
答案 1 :(得分:0)
根据您所需的响应状态代码,您可以使用BadRequest,NotFound或InternalServerError结果类。其中每个都有一个构造函数,它有一个错误消息的可选参数。
[HttpPost]
public IHttpActionResult CreateAccount(CollaborateurModel item)
{
try
{
// Do your thing
}
catch
{
// Return a HTTP 400 result
return BadRequest("This is an error message");
}
}