如何创建具有动态计数参数的路径

时间:2015-08-22 15:28:44

标签: c# asp.net-mvc asp.net-mvc-4

我需要在mvc项目中创建一个具有动态计数参数的路径。该路由应该引用相同的控制器操作。例如

  

/目录/汽车/
  /目录/汽车/宝马
  /目录/汽车/ BMW / X1

应该由同一个动作处理。

路线怎么样?或者我需要创建三条路线?

2 个答案:

答案 0 :(得分:2)

您不需要编写树路径只需使参数可选:

        routes.MapRoute(
            name: "YourRoute",
            url: "{controller}/{action}/{catalog}/{subcatalog}/{model}",
            defaults: new { 
               controller = "Home", 
               action = "Index", 
               catalog = UrlParameter.Optional, 
               subcatalog = UrlParameter.Optional, 
               model = UrlParameter.Optional }
        );

答案 1 :(得分:0)

这应该适用于您使用新MVC项目获得的默认路由,或者您可以使用特定的路由:

routes.MapRoute(
    name: "Cars",
    url: "{controller}/{action}/{manufacturer}/{model}",
    defaults: new { 
        controller = "Catalog", 
        action = "Cars", 
        manufacturer = UrlParameter.Optional,
        model = UrlParameter.Optional }
);

您只需要一个带有可选参数的操作方法:

public class Catalog : Controller
{
    public ActionResult Cars(string manufacturer = "", string model = "")
    {
        //snip
    }
}