3
我已经得到了默认路由:不能绑定到参数
routes.MapRoute(
"Shortie", // Route name
"{controller}/{id}", // URL with parameters
new { controller = "Ettan", action = "Index", id = "id" } // Parameter defaults
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Ettan", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
我有一个控制器:NewsController。它有一个方法,像这样:
public ActionResult Index(int id)
{
...
}
如果我浏览到/新闻/索引/ 123,它的工作原理。 /新闻/ 123作品。但是,/ News/Index?id = 123不会(它找不到任何名为“index”的id允许为空的方法)。所以我似乎对路由和模型绑定器如何协同工作缺乏一些了解。
问的原因是我想用不同的新闻来源,参数“id”有一个下拉菜单。所以我可以选择一个新闻来源(例如“sport”,id = 123),它应该被路由到我的索引方法。但我似乎无法得到那个工作。
也许你应该这样做方法签名:Index(int?id)? – Restuta 2010-10-08 06:56:16
是的,我现在用if(!id.HasValue){id = int.Parse(Request.QueryString [“id”])解决它。 }但是我想明白为什么我需要这样做。 – 2010-10-08 07:09:46