.Net MVC何时使用OnActionExecuting?

时间:2014-03-06 12:10:07

标签: asp.net-mvc

一些非常基本的问题。

何时在OnActionExecuting初始化或分配?

非常简单的场景:

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

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

        base.OnActionExecuting(filterContext);
    }
}

我应该在 OnActionExecuting 中分配customerId,以便我可以在每个操作的代码中重复使用它吗?

  • 可读性
  • 消除重复

或者我应该每次只在不同的行动中分配它?

  • 我们不需要这个分配,或者在每个动作中初始化某个对象的情况下)?

1 个答案:

答案 0 :(得分:1)

答案当然是它取决于你队伍的编码风格和其他情况。

您未考虑的另一个选项是创建一个custom action filter来包含此逻辑,并在动作方法签名之上只使用一行代码重复使用它。

然后,如果您决定将其应用于所有/任何操作方法,您可以将其应用于控制器,甚至应用于基本控制器。