2016-08-23 117 views
1

我在ASP.NET Core MVC應用程序中遇到問題。區域佈局忽略環境變量

任何人都可以建議爲什麼環境(名稱)標籤助手不適用於我的(管理)佈局頁面時,位於一個區域內?

當使用下面的代碼引用我的腳本時,它在放置到標準_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(公共)

「發展」 則顯示(好)

〜/地區/儀表板/查看/共享/ _layout。 CSHTML(管理)

「分期開發生產」 顯示(壞)

我的環境變量是 ASPNETCORE_ENVIRONMENT(帶發展值)

我啓動

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(); 
} 

配置方法 ...

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

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

任何幫助太好了 - 謝謝。 Dan。

+0

_ViewImports.cshtml是否引用區域文件夾中的標記助手?可能需要。 –

+0

我愛你!添加了_ViewImports.cshtml和導入的taghelpers參考。添加爲答案,我給大快樂綠色勾號! – DanAbdn

回答

2

像tagHelper這樣的聲音沒有在區域中註冊並正在被瀏覽器處理。

TagHelpers像environment在你_ViewImports.cshtml文件,默認情況下將只在/Views而且在每個領域都應該存在被引用。