具有动态值的MVC路由

时间:2015-05-06 11:18:06

标签: c# asp.net-mvc asp.net-mvc-4 routes url-routing

我正在努力使用MVC路线 我想获得以下网址;

  1. example.com/sector /
  2. example.com/sector/ddmmyyy /
  3. example.com/sector/ddmmyyy/article-with-seo-url /
  4. 所有3个值都是动态的(扇区/日期/ SEOURL)。

    我可以使用No.1(/ sector /):

    routes.MapRoute(
      "sectors",
      "{seourl}",
      new { controller = "NewsArticle", action = "sectors" }
    );
    

    但是我不知道如何获得其他2个动态值的路由。

    由于

    托米

1 个答案:

答案 0 :(得分:1)

您可能需要为DateSEOURL指定默认值:

routes.MapRoute(
   "sectors",
   "{sectorName}/{date}/{seourl}",
   new { constroller = "NewsArticle", action = "sectors",
         date = 0, seourl = string.Empty },
   new { date = "\d+" });

如果你转到http://www.example.com/apple,那么:

  • sectorName = apple
  • 日期= 0
  • seourl = “” (空字符串)

如果你转到http://www.example.com/apple/240514,那么:

  • sectorName = apple
  • 日期= 240514
  • seourl = “” (空字符串)

您的sectors行动应该具有以下签名:

public ActionResult sectors(string sectorName, int date, string seourl)

并且(以防万一),我也会将默认值分配给操作的参数:

public ActionResult sectors(string sectorName, int date = 0, string seourl = string.Empty);