例如:
class MyContoller
{
[MyCustomAttribute]
public ActionResult MyAction(ModelX fromRequest, ModelY fromSession, ModelZ fromCookie)
{
string productId = fromRequest.ProductId;
string userId = fromSession.UserId;
string cultureName = fromCookie.CultureName;
}
}
原因:
我不想在控制器中访问 Request、Session 和 HttpContext,而 MVC3 将模型传递给动作的默认想法非常棒。
我希望 MyAction 的参数数量易于更改。例如,如果我添加一个新参数,系统将尝试通过参数的名称或类型在 Request、Session 或 Cookies 中查找值(我认为 cookie 值可能需要自定义 ModelBinders)并将填充的模型传递给我的行动。我不必编写额外的代码。
自定义属性(示例中的 MyCustomAttribute)可以实现这个想法吗?