2017-03-08 38 views
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(); 
+0

創建自定義'FilterAttribute'並將其應用到控制器(或行動控制器中的方法) –

回答

相關問題