我在我的ASP.NET MVC应用程序中使用了几个(2或3)母版页,每个母版页都必须显示数据库中的一些信息。例如赞助商列表、当前资金状况等。
所以我的问题是,我应该把这些母版页数据库调用代码放在哪里?
通常,这些应该放在它自己的控制器类中,对吗?但这意味着我必须手动连接它们(例如,传递ViewDatas),因为它超出了MVC框架提供的正常路由框架。
有没有一种方法可以干净利落地做到这一点,而不需要手动将ViewData传递/操作调用连接到母版页或对框架进行子类化?
文档量非常低...我对所有这些都是非常陌生的,包括MVC本身的概念,所以请分享你的技巧/技巧。
发布于 2008-09-13 14:19:15
要做到这一点,一种方法是在母版页视图中放置控制器的钩子,然后定义一个BaseController : ViewData (或多个基类),在其中执行所需的所有db调用。
您想要做的事情与this文章中描述的完全相同。
我希望这能帮到你!
问候
发布于 2009-02-12 19:56:21
问得好。您有几个选项可供选择。
我认为最好的选择是为需要填充数据的母版页区域创建控件。因此,您的母版页必须严格包含设计元素。祝好运。
发布于 2008-09-15 20:49:40
如果您不介意强类型视图数据,您可以将所有母版页数据放在viewData的一个公共基类中。您可以在基类的构造函数中设置此数据。所有需要额外数据的视图都需要从这个基类继承的强类型视图数据。
要允许在没有任何显式视图数据的情况下在控制器中调用View(),您可以在ControllerBase中重写View:
protected override ViewResult View(string viewName, string masterName, object model)
{
if (model == null)
{
model = new ViewDataBase();
}
return base.View(viewName, masterName, model);
}https://stackoverflow.com/questions/60516
复制相似问题