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

Dan*_*bdn 1 c# asp.net-core-mvc asp.net-core

我的ASP.NET Core MVC应用程序中存在问题.

任何人都可以建议为什么环境(名称)的标签帮助器在位于区域内时不适用于我的(管理)布局页面?

当使用下面的代码引用我的脚本时,它在放入标准_Layout.cshtml页面时有效,但在区域(用于管理区域)中不包含_Layout.cshtml.理想情况下,我尝试将代码模块化为区域 - 仪表板包含管理区域的_Layout.cshtml页面.

我发现我的所有css/js参考文献都被包含在内(未经识别和缩小,以及CDN).所以我把下面的代码放到公共布局和管理布局中.

<environment names="Development">
  Development
</environment>
<environment names="Staging,Production">
  Staging production
</environment>
Run Code Online (Sandbox Code Playgroud)

〜/ Views/Shared/_Layout.cshtml(public)

显示"开发"(好)

〜/ Areas/Dashboard/Views/Shared/_Layout.cshtml(管理)

显示"开发分期生产"(坏)

我的环境变量是 ASPNETCORE_ENVIRONMENT(值为Development)

我的开始

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();
}
Run Code Online (Sandbox Code Playgroud)

配置方法 ......

app.UseMvc(routes =>
{
    routes.MapRoute(name: "areaRoute",
                    template: "{area:exists}/{controller=Home}/{action=Index}");

    routes.MapRoute(name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
});
Run Code Online (Sandbox Code Playgroud)

任何帮助都会很棒 - 谢谢.担.

ste*_*kil 5

听起来像tagHelper没有在Area中注册并且正由浏览器处理.

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