ASP.Net MVC路由混乱

时间:2011-04-14 20:59:10

标签: asp.net-mvc-2 routes

我的ASP.Net MVC 2网站有以下网址:

http://localhost:1919/TimeEntry/SummaryForWeek/15/2011

http://localhost:1919/TimeEntry/SummaryForMonth/4/2011

这两个都在达到这条路线:

            routes.MapRoute
        (
            "TimeEntryActionMonthYear", // Route name
            "TimeEntry/{action}/{month}/{year}", // URL with parameters
            new { controller = "TimeEntry", action = "Summary", month = UrlParameter.Optional, year = UrlParameter.Optional } // Parameter defaults
        );

SummaryForWeek的操作是期望一个名为“weekNumber”的参数(上面的URL中的15值),而正在使用的路由是传递一个名为“month”的参数,因此weekSummary的URL失败。为每周重命名SummaryForWeek的参数没有意义,只是路由可行。

我应该为路由表添加一个路由,其中​​{action}被硬编码为“SummaryForWeeks”吗?这没有任何意义,因为它会使路线表膨胀。

我不理解的是什么(我知道这会让我有些创意评论)?我被卡住了。

由于

汤姆

1 个答案:

答案 0 :(得分:1)

您需要两条路线,或者您需要更通用的参数名称:

TimeEntry/{action}/{subdivision}/{year}

或类似的东西。然后两个动作都必须采用这两个参数,一个将解释为月份,另一个解释为星期。