ASP.NET MVC:将上下文传递给自定义类

时间:2011-04-19 20:37:18

标签: asp.net-mvc

从操作方法向自定义业务/帮助程序类传递上下文的最佳方法是什么?我正在创建的帮助程序/业务类需要信息,例如当前登录的用户,UrlHelper类的实例(生成URL)以及与ASP.NET MVC基础结构相关的任何其他数据。

我在考虑传递一个控制器的实例。这是可取的吗?什么是最佳做法?

2 个答案:

答案 0 :(得分:5)

  

我正在创建的帮助程序/业务类需要诸如当前登录用户之类的信息。

不太可能。恕我直言用户名=> User.Identity.Name,可以作为字符串参数传递给此业务层。

  

UrlHelper类的实例(用于生成网址)

不太可能。生成URL不是业务层的责任。直接从具有Url属性的控制器传递URL,允许您自由生成URL(再次作为字符串参数)。

结论:将业务逻辑与基础架构分离。基本上,如果你称某种商业逻辑, URL helper 的唯一概念几乎没有意义。一旦跨越了Web层的边界,就没有更多的url助手了。

答案 1 :(得分:1)

减少业务助手层中已存在的耦合传递值类型或参数/ dto类。

不要传递任何与Web / UI层相关的内容。