我的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>
〜/ Views / Shared / _Layout.cshtml (公开)
显示“开发”(好)
〜/ Areas / Dashboard / Views / Shared / _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?}");
});
任何帮助都会很棒 - 谢谢。 丹。
答案 0 :(得分:5)
听起来像tagHelper没有在区域中注册并且正在由浏览器处理。
environment
之类的TagHelpers必须在_ViewImports.cshtml
文件中引用,默认情况下该文件只会在/Views
中,但也应存在于您的每个区域。