2011-03-24 73 views
0

我在控制器中有两个动作,但参数没有被传入其中之一。参数没有被传递给控制器​​在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)时,参数为空。名字匹配,因为他们应该但我无法弄清楚。

回答

3

尝试用相应路线中的列表和详细信息代替{controller}。但是对于您的场景,创建MVC应用程序时获得的默认路由应该可以工作。

+0

因此,List路线应该看起来像“List/{action}/{id}”? – 2011-03-24 19:50:37

+1

@加里:对。当前路由的问题是,只有代码中的第一个匹配,因为它们具有完全相同的模式(即使您指定的参数不同)。 – 2011-03-24 20:10:17

相关问题