ASP.Net Core 嵌套区域

标签 asp.net asp.net-mvc-4 asp.net-core

我想创建如下结构的区域

  • 领域
    • 管理员
      • 前端
        • Controller
          • HomeController.cs
        • 浏览量
      • 应用程序接口(interface)
        • Controller
          • HomeController.cs

启动类

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            loggerFactory.AddConsole(Configuration.GetSection("Logging"));
            loggerFactory.AddDebug();

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
                app.UseBrowserLink();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }

            app.UseStaticFiles();

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

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

我已经将 [Area("Admin/FrontEnd")] 标记为 HomeController 但它不起作用。它返回以下错误

处理请求时发生未处理的异常。

InvalidOperationException:未找到 View “关于”。搜索了以下位置: /Areas/Admin/Views/Home/About.cshtml

我该怎么办?

项目

enter image description here

enter image description here

最佳答案

您可以在 RazorViewEngineOptions 上使用 AreaViewLocationFormats 来指示您希望 MVC 查找 View 的所有路径。

services.Configure<RazorViewEngineOptions>(o =>
{
    o.AreaViewLocationFormats.Insert(0, "/Areas/{2}/FrontEnd/Views/Shared/{0}.cshtml");
    o.AreaViewLocationFormats.Insert(0, "/Areas/{2}/FrontEnd/Views/{1}/{0}.cshtml");
});

您可以在此处阅读有关 AreaViewLocationFormats 的详细文档:https://github.com/aspnet/Mvc/blob/1.0.0/src/Microsoft.AspNetCore.Mvc.Razor/RazorViewEngineOptions.cs#L92

您也可以将 Controller 装饰成 [Area("Admin")]

关于ASP.Net Core 嵌套区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38909006/

相关文章:

asp.net-mvc-4 - sln 和 vssscc 总是在我待定的 tfs 更改中

asp.net - 从网络应用程序中查找网站名称

.net - dll旁边的xml文件的用途是什么?

c# - 从自定义 AdditionalMetadataAttribute (asp.net mvc 5) 访问模型类实例

asp.net-mvc-4 - ASP.NET MVC 4 Web API 方法调用元数据

c# - Asp.Net WebApi Core 2.0 身份与 JWTBearer 没有 cookie

Javascript 启动时出错

c# - 复选框更新语句

c# - 请求 API 资源以外的范围时,ProfileDataRequestContext.RequestedClaimTypes 始终为 null?

javascript - 是否可以在 MVC Controller 返回中调用模态弹出窗口(javascript)