2014-03-06 34 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

自定义操作过滤器是非常干净和正确的方式是。我想尽可能多地从控制器中删除代码。 –

相关问题