更改名称

问题描述:

我有项目,地图路线(这是所有):更改名称

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

,我在控制有方法:

public ViewResult List(int id = 1) 
{ 
    ... 
} 

List.cshtml

@Html.ActionLink(i.ToString(), "List", "Product", new { id = i }, null) 

但我想更改id到页面,但不会更改它在RouteConfig.cs,我认为这是一些可以配置我的行动路线的属性。我希望这个解决方案:

@Html.ActionLink(i.ToString(), "List", "Product", new { page = i }, null) 

​​

您可以使用属性路由覆盖约定。

首先确保路由属性启用:

public class RouteConfig 
{ 
    public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.MapMvcAttributeRoutes(); 

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

然后适当的属性添加到您的控制器的方法,例如:

[Route("YourControllerName/List/{page?}")] 
public ViewResult List(int page = 1) 
{ 
    ... 
} 

问号使得页面参数可选。

如果这是一个默认的控制器和

[Route("")] 
[Route("YourControllerName/List/{page?}")] 
public ViewResult List(int page = 1) 
{ 
    ... 
} 

更多属性,路由可以在这里找到: http://blogs.msdn.com/b/webdev/archive/2013/10/17/attribute-routing-in-asp-net-mvc-5.aspx