0
在我的C#MVC控制器中,我需要設置一些需要請求進程的對象。如果該對象無法設置,我需要將用戶重定向到不同的鏈接。如何在同一個控制器中封裝不同路由中的公共請求處理
我的問題是我需要在我的控制器的每一個路徑上做到這一點,我怎麼做,沒有複製和粘貼代碼?
public async Task<ActionResult> Route1()
{
var setupObject = InitSetup();
if (setupObject == null)
return Redirect();
if (some check fail)
return Redirect();
//process Route1 request which needs setupObject not null;
return Ok();
}
public async Task<ActionResult> Route2()
{
var setupObject = InitSetup();
if (setupObject == null)
return Redirect();
if (some check fail)
return Redirect();
//process Route2 request which needs setupObject not null;
return Ok();
}
我想知道我怎麼也無法複製,如果你想之前在你的控制器執行的每一個動作執行一些代碼,那麼你可以覆蓋OnActionExecuting方法粘貼此
var setupObject = InitSetup();
if (setupObject == null)
return Redirect();
if (some check fail)
return Redirect();
創建自定義'FilterAttribute'並將其應用到控制器(或行動控制器中的方法) –