1

任何人都可以帮助解决这个问题,我有以下路线链接:

 @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。

任何帮助,将不胜感激

乔治

4

1 回答 1

2

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

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

于 2013-01-30T00:47:22.310 回答