1

我正在开发一个 ASP.Net MVC 项目。
我有一个特定的控制器操作,它接受格式为 yyyy/mm/dd 的日期值。所以网址变成了

http://localhost/MyProject/PublicReview/GetReviews/2012/10/29.

其中 GetReviews 是一个操作,2012/10/29 是参数。我的 RouteConfig 如下:

     public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
        routes.MapRoute(name: "Default",url: "{controller}/{action}/{id}",defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional });
    }

我应该如何更改路由值?MapRoute 值的顺序应该是什么?

4

1 回答 1

1

我没有对此进行测试,但我猜这将适用于您的场景:

 routes.MapRoute( 
           "Reviews", "PublicReview/GetReviews/{year}/{month}/{day}" 
            { controller = "PublicReview", action = "GetReviews" };

请注意,这将需要您的GetReviews方法具有“年”、“月”和“日”三个属性。然后,您必须将它们解析为DateTime.

取自http://www.asp.net/mvc/tutorials/controllers-and-routing/creating-custom-routes-cs,它使用“-”作为日期分隔符。

于 2013-06-18T14:22:45.970 回答