我在控制器中有兩個動作,但參數沒有被傳入其中之一。參數沒有被傳遞給控制器在ASP.NET MVC中的動作
這一個:/ RouteStop /列表/ 1
這一個:/ RouteStop /詳細信息/ 100
而且我的Global.asax:
routes.MapRoute( "List", "{controller}/{action}/{id}", new { controller = "RouteStop", action = "List", id = UrlParameter.Optional } );
routes.MapRoute( "Details", "{controller}/{action}/{routeID}", new { controller = "RouteStop", action = "Details", routeID = UrlParameter.Optional } );
而這裏的行動從我的控制器:
public ActionResult List(string id) { return View(); }
public ActionResult Details(string routeID) { return View(); }
當我訪問這個URL(/ RouteStop/Details/100)時,參數傳遞得很好。但是當我訪問另一個(/ RouteStop/List/1)時,參數爲空。名字匹配,因爲他們應該但我無法弄清楚。
因此,List路線應該看起來像「List/{action}/{id}」? – 2011-03-24 19:50:37
@加里:對。當前路由的問題是,只有代碼中的第一個匹配,因爲它們具有完全相同的模式(即使您指定的參數不同)。 – 2011-03-24 20:10:17