Html.RouteLink 404错误

时间:2013-01-29 22:26:01

标签: asp.net-mvc asp.net-mvc-4 asp.net-mvc-routing

任何人都可以帮助解决这个问题,我有以下的routelink:

 @Html.RouteLink(@item.strCountry, "WeatherCity", new {id=Regex.Replace(@item.strCountry, " ","-") })

在我的RouteConfig中,我有:

routes.MapRoute(
            name: "WeatherCity",
            url: "Cities-In/{id}",
           defaults: new { controller = "Weather", action = "Cities", id = UrlParameter.Optional }
            );

在我的控制器中我有:

 public PartialViewResult Cities(string id) 

也尝试了

public ActionResult Cities(string id)

但无论我做什么,我都会收到404错误。

我尝试过最后一个例子:

http://davecowart.wordpress.com/2011/06/08/named-routes-in-asp-net-mvc-3/

我错过了一些简单的东西,因为我无法使用它,我正在使用MVC4。

任何帮助将不胜感激

乔治

1 个答案:

答案 0 :(得分:2)

我想我找到了你的问题(读者参考:问题下的“评论”对话)。

您应该在默认路线之前放置routes.MapRoute()。否则,默认路由匹配并运行(并且MVC停止进一步查看任何后续路由规则)。 MVC将您的URL与默认路由匹配,但是它在 DefaultController 中找不到相应的操作(Cities)。