Html.ActionLink生成的Url为什么有时后面带“?”有时是“/”呢?这个是什么在控制的啊?求教!!!
路由是这样定义的:
routes.MapRoute(
"AllNews",
"{controller}/{action}/{id}",
new { controller = "News", action = "List"},
new { id = @"\d{1,4}" }
);
List.aspx页面生成Url代码:
<%: Html.ActionLink("详细", "Details",new { id = item.Id }) %>
生成 http://localhost:1390/News/Details?id=46
如何写才能生成 http://localhost:1390/News/Details/46 这个样子的呢?
这个涉及的到mvc路由的outbound机制,可以参考我的文章加以理解,希望对你有所帮助:
http://www.cnblogs.com/P_Chou/archive/2010/11/08/details-asp-net-mvc-03.html
不用定义新路由,使用系统默认的即可:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);