【问题标题】:Page can’t be found error inside Areas controller Index在区域控制器索引中找不到页面错误
【发布时间】:2019-09-29 07:37:52
【问题描述】:

我为管理页面(区域/系统)和里面的 AdminController 创建了这个区域。

但是,当我尝试将 URL 作为https://localhost:44361/System/Admin 放入地址时,它没有Index() 函数内中断。并且错误页面显示“找不到此本地主机页面”,即使有 Index.cshtml

附带说明,当您访问 https://localhost:44361 时,这在 HomeController > Index() 中运行良好。

下面是区域/系统AdminController的示例代码。

[Area("System")]
[Route("System/[controller]/[action]")]
    public class AdminController : BaseController
    {
        public IActionResult Index()
        {
            return View();
        }
}

【问题讨论】:

  • 你试过[Route("[area]/[controller]/[action]")]
  • @dropoutcoder,还是不行

标签: .net-core controller


【解决方案1】:

遗憾的是,您还没有发布您的 Startup.Configure,更具体地说是 app.UseMvc,但考虑到您的 HomeController/Index 被解雇的事实,我认为问题可能就在那里。定义 [Area("System")] 就足够了,rest 是隐式的。

app.UseMvc(routes =>
{
    //Order is important, most specific to least specific
    routes.MapRoute(
      name: "MyArea",
      template: **"{area:exists}/**{controller=Home}/{action=Index}/{id?}");

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

更多关于区域和路线配置的阅读:https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/areas?view=aspnetcore-3.0#add-area-route

【讨论】:

    【解决方案2】:

    我想我得到了答案。我只是删除了 Route 属性,它就可以工作了。

    [Route("System/[controller]/[action]")]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-04
      相关资源
      最近更新 更多