更改名称
问题描述:
我有项目,地图路线(这是所有):更改名称
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