[一步一步MVC]第一回:使用ActionSelector控制Action的选择

系列文章导航:

[一步一步MVC]第一回:使用ActionSelector控制Action的选择

[一步一步MVC]第二回:还是ActionFilter,实现对业务逻辑的统一Authorize处理

[一步一步MVC]第三回:MVC范例大观园

[一步一步MVC]第四回:漫谈ActionLink,有时“胡搅蛮缠”

[一步一步MVC]第五回:让TagBuilder丰富你的HtmlHelper

[一步一步MVC]第六回:什么是MVC(上)?


ActionFilter一定是MVC控制中对于Action控制中最值得研究的玩意,在项目实际中我们不可避免的使用例如:

  • HandleError
  • Authorized
  • OutputCache

在本文中,我们应用Action Selector方式进行Action的选择,想要阐述清楚这个问题,我们从实际的问题出发来关注。

实际的问题,从和老赵的对话了解

我们有个业务室这样的:系统有不同的角色,例如Admin、Client、Agent。假设有个功能叫Book/List,那么就对应了一个List这样的View和action为List这样的BookController,现在,我们的情况是对于不同的角色,所对应的List是不同的。Admin看到的Book/List和Client看到的Book/List是不同的,那么通过Url:http://anytao.com/Book/List/123,不同的角色如何处理,差不多就这样,是否清楚。

:那么对于同一Action如何更好的return到不同的view?

老赵:具体问题是什么呢?

: 我现在能想到的是在Action中根据角色Return到不同的View,简单的办法就是在List Action根据角色Return到不同的View。问题是,还有什么更好的办法。

老赵:准备n各action,分别加上自定的ActionSelector,不要用一个Action,不用一个Action然后在里面if。

[OnlyInRole("admin")] 
[ActionName(
"List")]
ListForAdmin()
{
}

[OnlyInRole(
"user")]
[ActionName(
"List")]
ListForUser()
{
}

NET技术[一步一步MVC]第一回:使用ActionSelector控制Action的选择,转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。