2013-06-01 6 views
5

で特定のコントローラのルートをマップすることはできません:私はrtパラメータとGetReqsが呼び出されないアクションメソッドにアクセスすることはできませんしかしは、私は、次のよう<code>Registration</code>という名前のコントローラとその中のアクションメソッドを持っているMVC 4

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 } 
     );    
    } 
} 

は(私はそれにブレークポイントを設定しても何も起こりませんでした)。間違いはどこですか?

編集:リンクの例では、私が試した:~/Registration/GetReqs/1

答えて

6

は、私はあなたが最初のルートで括弧を削除する必要があると思う:

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

デフォルトルートは、文字列を使用してMVCを伝えるために{controller}を持っていますurlのその部分をコントローラ名として使用します。コントローラーを知っているので、特定の文字列に一致させるだけです。

+0

修正済み!どうもありがとう – AminSaghi

関連する問題