2011-04-25 3 views
0

私はAccountAjaxControllerメソッドアクションいずれかがあります

をコントローラにASP.NET MVC3および/アカウント/アヤックス/アクションマップのようなルートを作成する方法についての好奇心を使用していASP.NET MVC3にコントローラの3部構成のルートURLを作成しますそうする方法は?

すでにGlobal.asax.csファイルに次のコードを使用して問題を解決:私はこれをやった

 routes.MapRoute(
      "Default", 
      "{controller}/{action}/{id}", 
      new {controller = "Home", action = "Index", id = UrlParameter.Optional}, 
      new[] {"MyProjectName.FrontEnd.Web.Logic.Controllers"} 
      ); 

     routes.MapRoute(
      "Ajax", 
      "Ajax/{controller}/{action}/{id}", 
      new[] {"MyProjectName.FrontEnd.Web.Logic.Controllers.Ajax"} 
      ); 

答えて

1

一つの方法は、)(RouteCollection.MapRouteです。 http://msdn.microsoft.com/en-us/library/dd470521.aspxを参照してください。あなたはルートですべての種類のものを行うことができます。 I以下のコードで

は通常のApplication_Start()私のglobal.asax.csからこれを呼び出します。

RouteCollection routes = RouteTable.Routes; 

    routes.MapRoute(
     "ArbitraryRouteName", // Route name 
     "Account/Ajax/Action/", // URL with parameters 
     new 
     { 
      controller = "AccountAjax", 
      action = "Action" 
     }, // Parameter defaults 
     new 
     { 
     } 
    ); 

リンクを生成するためにこれを使用する多くの方法があります。あなたのビューでHtml.RouteLink()を例として使用することができます。私はあなたがHtml.ActionLink( "リンクテキスト"、 "AccountAjax"、 "アクション")を呼び出すこともできると信じています。私はそこにあなたのコントローラとアクション名にマップされたルートが1つしかないと思うと、ASP.NET MVCはあなたのルートマッピングから生成する適切なURLを自動的に見つけ出します。

RouteLink拡張メソッドの例については、http://msdn.microsoft.com/en-us/library/dd492585.aspxを参照してください。