我是一个应用程序,其中所有内容都绑定到当前连接的用户。到目前为止,几乎所有的操作都调用了我的UsersService.GetUser(guid)方法,该方法带来了用户及其所有相关数据。它确实工作正常,但在每个动作中都说了这个电话真的很困扰我。
在考虑之后我决定使用一个声明类似
的基本控制器protected UserProfile CurrentUser
{
get { return UsersService.GetUser((Guid)Membership.GetUser().ProviderUserKey); }
}
然后我的控制器继承自基本控制器并使用CurrentUser而不是在每个操作中调用服务。不过,感觉我只是把地毯下面的污垢藏起来了。
所以,请你,如果你有更好的方式分享。
答案 0 :(得分:1)
对我而言,你所做的事对我来说是有道理的。 使用Base控制器是一种很好的做法。 可以扩展的一件事是将用户放在会话对象中,这样您就不需要在每次请求时都按下db。