1
我有一個ActionFilterAttribute
,如果請求無效,則會引發錯誤。如何在從屬性拋出控制器時捕獲錯誤?
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public class AjaxOnlyAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if((!filterContext.HttpContext.Request.IsAjaxRequest() ||
!filterContext.HttpContext.Request.IsXMLHttpRequest()) &&
(!filterContext.HttpContext.Request.IsLocal))
{
throw new InvalidOperationException("This operation can only be accessed via Ajax requests.");
}
}
}
現在在我的控制,我想捕捉錯誤,並把它傳遞給視圖
[AjaxOnly]
public JsonpResult List()
{
try
{
var vimeoService = new VimeoService();
var videos = vimeoService.GetVideosFromChannel(this._vimeoChannelId);
return this.Jsonp(videos);
}
catch (Exception ex)
{
var err = new ErrorsModel() { ErrorMessage = ex.Message };
return this.Jsonp(err, false);
}
}
現在因爲屬性控制器動作火災之前運行,我絕不能「抓「控制器中的錯誤,從而我無法將錯誤傳遞給視圖。
我該如何做到這一點?
這是我遇到過的MVC中的錯誤處理的第一個例子,我可以複製+粘貼並實際工作。榮譽給你。 – Graham 2012-10-03 15:08:36