【问题标题】:How to route in ASP.NET Core for deleting error 404 Not found如何在 ASP.NET Core 中路由以删除错误 404 Not found
【发布时间】:2020-04-16 12:38:34
【问题描述】:

我重新组织了我的项目文件夹,我认为它可能用于新的“客户区”。在 Visual Studio 2019 for mac 中,它似乎没有添加区域,甚至在新的脚手架中也没有,所以我添加了新文件夹。

我认为错误 404 是因为“路由”。我显示我的文件夹和代码:

控制器:

    namespace BulkyBook.Areas.Customer.Controllers
{
    [Area("Customer")]
    //[Route("Customer/Home/Index/id")]
    public class HomeController : Controller
    {
        private readonly ILogger<HomeController> _logger;

        public HomeController(ILogger<HomeController> logger)
        {
            _logger = logger;
        }

        public IActionResult Index()
        {
            return View();
        }

        public IActionResult Privacy()
        {
            return View();
        }

        [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
        public IActionResult Error()
        {
            return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
        }
    }
}

启动:

app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{area=Customer}/{controller=Home}/{action=Index}/{id}");
                endpoints.MapRazorPages();
            });

感谢您的帮助。

【问题讨论】:

    标签: c# asp.net-core model-view-controller


    【解决方案1】:

    你有两个问题。首先,您已将id 设置为必需的路由参数,因此没有该部分的路由将无法匹配任何内容。其次,你已经做到了,only 区域可以被路由到。换句话说,如果 URL 没有区域部分,那么它将失败。 docs 告诉你如何做这一切,具体来说,这是你应该拥有的路由配置:

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "Customer",
            pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
    
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");
    
        // other endpoints, e.g.
        endpoints.MapRazorPages();
    });
    

    【讨论】:

    • 我明白了,我不得不把“endpoints.MapAreaControllerRoute()”谢谢你的回答
    猜你喜欢
    • 1970-01-01
    • 2020-09-13
    • 1970-01-01
    • 2019-05-12
    • 1970-01-01
    • 1970-01-01
    • 2015-06-25
    • 2020-09-14
    • 1970-01-01
    相关资源
    最近更新 更多