任何人都可以帮助解决这个问题,我有以下的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。
任何帮助将不胜感激
乔治
答案 0 :(得分:2)
我想我找到了你的问题(读者参考:问题下的“评论”对话)。
您应该在默认路线之前放置routes.MapRoute()
件。否则,默认路由匹配并运行(并且MVC停止进一步查看任何后续路由规则)。 MVC将您的URL与默认路由匹配,但是它在 DefaultController 中找不到相应的操作(Cities
)。