在我的一个 MVC 项目中,我有一个用于测试部署站点的特殊配置设置。这样做,我能够添加一个配置转换来覆盖我的 web.config 文件中的各种设置。例如,我有以下文件:
web.config
web.release.config
web.debug.config
web.testsite.config
当我部署到我的测试站点时,它现在会覆盖我的 web.testsite.config 中指定的一些设置
是否有可能在我的某些观点上获得相同的行为?例如,我可以有一个 Index.testsite.cshtml 吗?我可以使用配置中的标志来打开和关闭行为,但似乎更简洁的方法是允许基于配置的额外转换/替换 View 。
最佳答案
这实际上很容易做到。
*global.asax - 内部 Application_Start()*
var displayModes = DisplayModeProvider.Instance.Modes;
displayModes.Insert(0, new DefaultDisplayMode("TestSite")
{
ContextCondition = (context => IsTestSite())
});
IsTestSite() 的定义
public bool IsTestSite()
{
bool isTestSite;
return bool.TryParse(ConfigurationManager.AppSettings["isTestSite"], out isTestSite);
}
就是这样,现在您的应用程序将使用
Intex.TestSite.cshtml
如果存在,否则将服务 Index.cshtml
.对于任何其他 View 名称也是如此,只需粘贴 TestSite
在延长之前。
关于asp.net-mvc - MVC View 可以像 web.config 文件那样针对多个部署进行转换吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17091755/