亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

ASP.Net MVC編寫自定義Attribute

ASP.Net MVC編寫自定義Attribute

MM們 2018-09-10 18:10:30
我在將近一半的方法中,需要執行一段特定代碼。這段代碼負責將HTTP返回頭中增加一個Header。如果復制粘貼這些代碼實在太低效率了。請問如何寫一個自定義Attribute來實現加了這個Attribute的方法就具有這些特性呢?同時,我也在近一半的方法中(另一半只需要留給ASP.Net自己處理),需要對這個方法Try Catch住,使得發生異常時能夠被我自己捕獲,異常的處理代碼都是相同的。如果復制粘貼這些代碼,實在太低效率了。如何寫一個自定義Attribute來實現加了這個Attribute的方法就具有這些特性呢?
查看完整描述

1 回答

?
莫回無

TA貢獻1865條經驗 獲得超7個贊

1.比如在header加入允許跨域請求

public class AllowOriginAttribute : ActionFilterAttribute{
    public override void OnActionExecuting(ActionExecutingContext filterContext) {
        filterContext.RequestContext.HttpContext.Response.AddHeader("Access-Control-Allow-Origin", "*");        
        base.OnActionExecuting(filterContext);
    }
}

2.將異常拋給最上層進行統一處理。
寫一個父級Controller,其他Controller集成它,然后重寫這個可統一處理異常

protected override void OnException(ExceptionContext context)
{
    
    base.OnException(context);    //處理異常
    context.ExceptionHandled = true;    
    context.HttpContext.Response.Clear();    
    context.HttpContext.Response.StatusCode = GetStatusCodeForException(context);    
    context.Result = ...//判斷是否是json,返回不同的結果

    context.HttpContext.Response.TrySkipIisCustomErrors = true;
}


查看完整回答
反對 回復 2018-09-29
  • 1 回答
  • 0 關注
  • 223 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號