asp.net-mvc - MVC View 可以像 web.config 文件那样针对多个部署进行转换吗?

标签 asp.net-mvc asp.net-mvc-3

在我的一个 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/

相关文章:

asp.net-mvc - MVC 部分 View [Display(Name = "")] 可以在没有 DisplayFor 或 EditorFor 的情况下使用

javascript - 在 javascript 中使用 ViewData 的 ASP.NET MVC

global-variables - MVC 3 Razor _ViewStart 中的公共(public)变量

javascript - 如何访问 @URL.Action() 中的 javascript 变量

asp.net-mvc - 有没有办法在 Controller 中获取 PartialView HTML 内容?

asp.net-mvc - 使用 Autofac 将依赖项注入(inject)自定义 Web API 操作过滤器属性

asp.net - 如何在 ASP.NET MVC 中禁用 HTTP Keep-Alive?

asp.net-mvc - 当数据回发时,MVC 如何填充模型

asp.net - 部署asp.net,IIS没有导入应用选项

c# - 从插件加载 View 而不将其作为资源嵌入到 nopCommerce 中