2014-03-06 60 views
0

一些非常基本的問題。.Net MVC何時使用OnActionExecuting?

何時初始化或分配OnActionExecuting?

很簡單的場景:

public partial class OrderController : DefaultController 
{ 
    private int customerId = 0; 

    protected override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
     customerId = WebSecurity.CurrentUserId; 

     base.OnActionExecuting(filterContext); 
    } 
} 

我應該分配中的customerId OnActionExecuting,所以我可以在每個動作重複使用它的代碼?

  • 可讀性
  • 消除重複

或者我應該只是每次給它分配在不同的行動?

  • 我們不需要這個賦值或者在每個動作中初始化某個對象的情況下)?
+0

最好的方式看起來像CustomAuthorizatoinAttribute和重寫授權() –

回答

1

答案當然是它取決於您的團隊的編碼風格和其他情況。

您還沒有考慮的另一個選擇是創建一個custom action filter來包含此邏輯,並在action-method簽名上方只有一行代碼重用它。

然後,如果您決定將其應用於所有/任何操作方法,則可以將其應用於控制器或甚至是基礎控制器。

+0

自定義操作過濾器是非常乾淨和正確的方式是。我想盡可能多地從控制器中刪除代碼。 –

相關問題