我們用所謂的 'CustomExceptionHandler' 控制器上的方法的屬性(例如)。在其中我們將我們想要的描述傳遞給Response.StatusDescription屬性。一旦響應返回到我們的調用頁面,我們有一些js讀取狀態描述並輸出(例如,在警報中)。它看起來像這樣:
樣品行動
[CustomExceptionHandler]
public ActionResult Save(SomeViewModel viewModel)
{
//do stuff
}
CustomExceptionHandler類
public class CustomExceptionHandler : HandleErrorAttribute
{
public override void OnException(ExceptionContext filterContext)
{
handleException(filterContext);
}
private void handleException(ExceptionContext filterContext)
{
filterContext.HttpContext.Response.StatusCode = 500;
filterContext.HttpContext.Response.StatusDescription = HttpUtility.UrlEncode(filterContext.Exception.Message);
filterContext.ExceptionHandled = true;
filterContext.HttpContext.Response.Clear();
filterContext.HttpContext.Response.End();
}
}
使用Javascript(例如用Ajax調用)
function onFormFailure(context) {
alert(context.statusText);
}
我們喜歡的事情是,異常的消息與顯示分離。因此,如果我們想要以警報,模式或內聯方式顯示消息,我們可以獨立更改。
這真的很有幫助。謝謝! – user3070072