我想优化我在网络浏览器中显示的网址。我知道路由是完美的,但我不知道它是否可能以我想要的方式。我在列表中有一个项目列表。每个项目都有ID,名称和类别。导航到详细信息产品页面时,显示的URL应为" / category / name"。我知道我可以在ActionLink中传递ID,类别和名称,并调整Global.asax中的路由。我已经这样做但我仍然拥有与URL的其余部分连接的ID。这太丑了。
以下是一个例子:
我认为的ActionLink:
@Html.ActionLink(@p.Name, "Detail", new { projectID = @p.ProjectID, category = @p.Category, name = @p.Name })
Global.asax:
routes.MapRoute(null,
"{category}/{name}",
new { controller = "Project", action = "Detail" }
);
结果网址:
如您所见,projectID始终添加到URL的末尾。我该如何避免这种行为?
感谢。
答案 0 :(得分:2)
routes.MapRoute(null,
"{category}/{name}/{projectID}",
new { controller = "Project", action = "Detail", projectID = UrlParameter.Optional }
);
会给你
/INDUSTRIE/Mailing/16
是你想要的吗?