我正在 mvc3 中创建一个应用程序,想知道如何处理所有应用程序请求所需的数据库数据,其中一些取决于会话,其中一些取决于 url 模式,基本上所有数据都在数据库中。
喜欢了解最佳实践
我在应用程序中所做的并认为最佳实践是将通用数据加载到控制器构造函数上的 ViewBag 中。
对于每个项目,我都有一个扩展 Controller 的 DefaultController 抽象类。因此,项目中的每个控制器都必须继承自DefaultController,而不是Controller。在该类的构造函数中,我加载整个项目通用的所有数据,如下所示:
// DefaultController.cs
public abstract class DefaultController : Controller
{
protected IRepository Repo { get; private set; }
protected DefaultController(IRepository repo)
{
Repo = repo;
ViewBag.CurrentUser = GetLoggedInUser();
}
protected User GetLoggedInUser()
{
// your logic for retrieving the data here
}
}
// HomeController.cs
public class HomeController : DefaultController
{
public HomeController(IRepository repo) : base(repo)
{
}
// ... your action methods
}
这样,您的视图中将始终显示已登录的用户。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)