ASP.NET MVC 由城市路由然后控制器和操作

问题描述 投票:0回答:1

我有一个基本的 ASP.NET MVC5 应用程序,其中一个 Restaurant 类作为我的模型,并且我当前正在使用默认的开箱即用路由。

  • /餐厅/创建

  • /餐厅/详情

  • /餐厅/索引

此前这仅基于一个城市。现在我想制作这个多城市并以这种方式路由它

  • 伦敦/餐厅/索引

  • 曼彻斯特/餐厅/索引

  • 伯明翰/餐厅/索引

我一直在阅读 ASP.NET 中的自定义路由、属性路由、路由约束,但我不知道如何实现上述目标。

我尝试将 RouteConfig.cs 中的默认路由更改为以下内容,但这不起作用。

    routes.MapRoute(
        name: "Default",
        url: "{city}/{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );

这是我的餐厅控制器索引签名

        public ActionResult Index(int? RestaurantId)
        {
            ViewBag.Restaurants = new SelectList(db.Restaurants.ToList().OrderBy(r => r.RestaurantName), "RestaurantID", "RestaurantName");

            return View(db.Restaurants.ToList());
        }
routes asp.net-mvc-5 asp.net-mvc-routing
1个回答
1
投票

为了将来阅读这篇文章的任何人的利益:我找到了一种不同的方式来实现我使用城市的目标。我阅读了子域,发现我可以使用:

  • london.mydomain.com
  • manchester.mydomain.com
  • birmingham.mydomain.com

这是通过使用自定义

RouteBase
类来实现的,如这篇有趣的文章中所述。

© www.soinside.com 2019 - 2024. All rights reserved.