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