4

我有一条通过 RedirectToRoute 调用的路由,如下所示:

return this.RedirectToRoute("Super-SuperRoute", new { year = selectedYear });

我也试过:

 return this.RedirectToRoute("Super-SuperRoute", new { controller = "Super", action = "SuperRoute", id = "RouteTopic", year = selectedYear });

global.asax 中的路由是这样的:

routes.MapRoute(
    "Super-SuperRoute", // Route name
    "Super.mvc/SuperRoute/{year}",  // URL with parameters
     new { controller = "Super", action = "SuperRoute", id = "RouteTopic" }  // Parameter defaults
);

那么为什么我会收到错误消息:“路由表中的路由与提供的值不匹配。”?

我看到 selectedYear 的类型是 var。当我尝试使用 int.Parse 转换为 int 时,我意识到 selectedYear 实际上为空,这可以解释问题。我想下次我会更加注意断点处的变量值:)

4

1 回答 1

5

选择什么类型的年份?日期时间?如果是这样,那么您可能需要转换为字符串。

于 2008-08-08T05:21:07.477 回答