2011-04-25 54 views
0

我使用ASP.NET MVC3和好奇如何制作像/帐号/阿贾克斯/动作映射路由控制器AccountAjaxController方法操作在ASP.NET MVC3让三部分航线的URL控制器

有什么这样做的方式?

中的Global.asax.cs文件中使用下面的代码已经解决了的问题:我已经做了,这是与RouteCollection.MapRoute()

 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

的一种方式。见http://msdn.microsoft.com/en-us/library/dd470521.aspx。你可以用路线做各种东西。

在下面的代码我通常会从我的global.asax.cs的Application_Start()调用此:

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”,“Action”)。我认为提供只有一个Route映射到您的控制器和操作名称,ASP.NET MVC会自动计算出您的路由映射生成的正确URL。

有关RouteLink扩展方法的示例,请参见http://msdn.microsoft.com/en-us/library/dd492585.aspx