如果我想在整个应用程序中将组合框与_Layout.cshtml中的某些值放在一起,我应该在哪里放置这些数据组合框数据?在global.asax文件中,还是有更好的方法来考虑性能?
答案 0 :(得分:0)
如果值大部分是静态的,您可以直接在控件中对它们进行编码,那么您可以
在任何一种情况下,值都在控件中。
或者,如果值需要来自服务或其他某些设置(不能直接在控件中编码),那么您可以创建一个控制器(或向现有操作添加操作)一)并从你的_layout调用该控制器。您可以使用Html.Action()
。
然后在该控制器中,您可以从任何地方获取值。问题问你应该把它们放在哪里,但它没有提到它们的来源。在任何一种情况下,我都会有一个类似IThingsThatGoIntheComboBoxProvider
或IFooProvider
的接口,将其注入控制器,并从中获取值。实现可以是WCF服务,从web.config读取的类等。
答案 1 :(得分:0)
我们通常采用所有页面中存在的内容(可能是页脚或标题)的方法是将标记放在布局文件中,然后让所有模型继承自基础模型,这将保存共享数据并让我们所有的控制器继承自基础控制器,基础控制器用相关数据填充模型的共享部分。
这样,页面上共享元素的处理就会从在特定页面上工作的开发人员中抽象出来。