我在控制器中有两个动作,但参数没有被传入其中之一。参数没有被传递给控制器在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