2013-06-01 50 views
5

我有一個名爲Registration控制器和它的操作方法如下:不能在MVC映射路徑爲特定的控制器4

public JsonResult GetReqs(GridSettings gridSettings, int rt) 
    { 
     ...//whatever 

     return Json(jsonData, JsonRequestBehavior.AllowGet); 
    } 

所以我增加了一個途徑,現在我RouteConfig.cs是這樣的:

public class RouteConfig 
{ 
    public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapRoute(
      name: "RegReq", 
      url: "{Registration}/{GetReqs}/{rt}", 
      defaults: new { controller = "Registration", action = "GetReqs", rt = UrlParameter.Optional } 
     ); 

     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     );    
    } 
} 

但是我無法訪問rt參數和操作方法GetReqs不叫(我把它斷點,但什麼也沒發生)。錯誤在哪裏?

編輯:鏈接例子我想:~/Registration/GetReqs/1

回答

6

我認爲你需要刪除你的第一條路線括號:

routes.MapRoute(
      name: "RegReq", 
      url: "Registration/GetReqs/{rt}", 
      defaults: new { controller = "Registration", action = "GetReqs", 
       rt = UrlParameter.Optional } 
     ); 

默認路由具有{controller}告訴MVC使用的字符串在該部分的url中作爲控制器名稱。你知道控制器,所以你只需要匹配特定的字符串。

+0

固定!非常感謝 – AminSaghi