区域布局中忽略的环境变量

本文关键字:环境变量 布局 区域 | 更新日期: 2023-09-27 18:03:36

我的ASP有问题。. NET Core MVC应用。

谁能告诉为什么环境(名称)的标签助手不为我的(管理)布局页面工作时,位于一个区域内?

当使用下面的代码引用我的脚本时,它可以在放入Standard _Layout时工作。cshtml页面,但不是_Layout。包含在区域内的CSHTML(用于管理区域)。我理想地尝试模块化我的代码进入区域-仪表板包含这个_Layout。管理区域的CSHTML页面。

我发现我所有的css/js引用都被包括在内(unminified和minified和CDN)。所以我把下面的代码放入公共布局和管理布局。

<environment names="Development">
  Development
</environment>
<environment names="Staging,Production">
  Staging production
</environment>

~//共享/_Layout观点。cshtml (公共)

显示"Development"(good)

~//仪表板/视图/共享/_Layout领域。cshtml (政府)

显示"开发阶段生产"(坏)

环境变量是ASPNETCORE_ENVIRONMENT(带Development值)

My start up

public Startup(IHostingEnvironment env)
{
    var builder = new ConfigurationBuilder()
        .SetBasePath(env.ContentRootPath)
        .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
        .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
        .AddEnvironmentVariables();
    if (env.IsDevelopment())
    {
        // For more details on using the user secret store see http://go.microsoft.com/fwlink/?LinkID=532709
        builder.AddUserSecrets();
    }
    Configuration = builder.Build();
}
<<p> 配置方法/strong>…
app.UseMvc(routes =>
{
    routes.MapRoute(name: "areaRoute",
                    template: "{area:exists}/{controller=Home}/{action=Index}");
    routes.MapRoute(name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
});

任何帮助将是伟大的-谢谢你。丹。

区域布局中忽略的环境变量

听起来tagHelper没有在Area中注册,而是由浏览器处理。

environment这样的TagHelpers必须在你的_ViewImports.cshtml文件中引用,默认情况下它只在/Views中,但也应该存在于你的每个区域。