MVC Preview 4 - 路由表中没有路由与提供的值匹配

Posted

技术标签:

【中文标题】MVC Preview 4 - 路由表中没有路由与提供的值匹配【英文标题】:MVC Preview 4 - No route in the route table matches the supplied values 【发布时间】:2010-09-05 13:30:27 【问题描述】:

我有一条通过 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 实际上为空,这可以解释问题。我想下次我会更加关注断点处的变量值:)

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于MVC Preview 4 - 路由表中没有路由与提供的值匹配的主要内容,如果未能解决你的问题,请参考以下文章

MVC 2 区域注册路由顺序

使用端点路由时不支持使用“UseMvc”配置 MVC

来自 ASP.NET MVC CMS 数据库的动态路由

默认路由与浮动路由,交换机配置(笔记)

angularjs

确保 WebAPI2 路由在 MVC 路由之前匹配