2011-03-24 50 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

相關問題