實現思路
1.標識控制器有攔截特性;
2.控制器攔截處理;
程式碼實現
1.標識控制器有攔截特性,程式碼:
[MyFilter] public string PostFindUser([FromBody]Userinfo user) { return string.Format("{0}是好人~", user.Name); }
2.控制器攔截處理,程式碼:
public class MyFilter : ActionFilterAttribute { public override void OnActionExecuting(HttpActionContext actionContext) { base.OnActionExecuting(actionContext); //獲取請求引數 WebApiTest.Controllers.Userinfo user = (WebApiTest.Controllers.Userinfo)actionContext.ActionArguments["user"]; //TODO:業務判斷 if (user.Name == "小明") //請求終止,進行調整或者內容輸出 { //HttpContext.Current.Response.Redirect("~/home/index"); HttpContext.Current.Response.Write("{\"id\":1,\"name\":\"小明\"}"); //建立響應物件,初始化為成功,沒有指定的話本次請求將不會被攔截 actionContext.Response = new HttpResponseMessage(System.Net.HttpStatusCode.OK); } } }