2012-09-27 159 views
0

控制器中的索引函數需要三個參數,比如'a','b','c'。目前我能夠將值傳遞給URL中的參數,如動作?a =「1」&'b'= 2 &'c'= 3。asp.net Url路由問題

我想在表單action /「value」或action/b =「value」中將值發送給param'b'。我試圖在Global.asax.cs中編輯路由,但是我收到錯誤「路徑控制器未找到或未實現iController」。在這個問題上的任何幫助,將不勝感激

回答

1

你應該建立這個到您的路由表以這種方式在Global.asax:

RouteTable.Routes.Add(new Route 
{ 
    Url = "[controller]/[action]/[a]/[b]/[c]", 
    Defaults = new { controller = "myController", action = "myAction", a = "1", b = "2", c = "3" }, 
    RouteHandler(typeof(MvcRouteHandler) 
}); 

要打破它,URL參數顯示的結構預期的Url,defaults參數爲其中任何一個可能爲空的默認值。請記住,這將始終預期路線myDomain.com/myController/myAction/1/2/3或與myDomain.com/myController/myAction///結構相匹配的東西。如果您需要具有不同的這些值的子集,則需要相應地調整路線。此外,您需要確保此路線在路由定義中相當早出現。路線由其找到的第一條匹配路線決定,因此更復雜(難以到達)的路線應始終提前,以允許默認路線捕捉任何錯過的路線。

參考:http://weblogs.asp.net/scottgu/archive/2007/12/03/asp-net-mvc-framework-part-2-url-routing.aspx

+0

,我的工作對當前的項目使用MapRoutes。我嘗試按照以下給出的方式映射路由:context.MapRoute(「route」,「controller/action/{a}」, new {controller =「sampleController」,action =「sampleaction」,a =「」} ); – user1694533