在我的索引页,我使用生成URL以下Asp.net MVC 4网址资源无法找到
@foreach(var c in ViewBag.cities)
{
<li>@Html.ActionLink((string)c.CityName,"somepage",new{city=c.CityName, id=c.Id})</li>
}
将在以下格式
localhost:55055/1/city1
localhost:55055/2/city2
...
其中1生成的URL为每个城市,2是Id和city1,城2是CITYNAME
我已经配置为
routes.MapRoute(
name: "CityRoute",
url: "{id}/{city}",
defaults: new { controller = "Home", action = "somepage", id = UrlParameter.Optional, city = UrlParameter.Optional }
);
01的路线
在家庭控制器的somepage
操作方法:
public string somepage(int id, string city)
{
return city + " " + id;
}
即使我想这
public string somepage()
{
return "Hello";
}
,但它会导致Resource cannot be found
我试图把断点sompage
这是从来没有击中。
任何suggesstions
更新
正如评论所指出的@KD下面我改变了路线秩序和上面摆放的所有规则提到的原则之上。我也改变了方法
public ActionResult somepage(int id=0, string city="")
{
return Content(city + " " + id);
}
现在改变了行为和默认规则
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
不用于正常的索引页。相反,由于方法somepage
中的断点被击中,并且如果我在浏览器中放置了http://localhost:55055/2/cityname
,该页面确实显示了id和城市名。但现在默认路由不用于申请家庭http://localhost:55055/
请更新您的标题与您的具体问题.. – 2013-03-12 08:43:42
请确保您添加正确的顺序路线。您添加的路线应位于默认路线的顶部。 – 2013-03-12 08:45:30
也试试这个动作方法public ActionResult somepage(string id,string city) – 2013-03-12 08:46:35