【发布时间】:2016-03-08 18:00:05
【问题描述】:
我有自定义路由来添加一个 slug 到我的 Urls 的末尾,其中包含和 Id 用于 SEO 目的。
我希望能够拥有 SEO 友好的网址,如下所示:
http://localhost:12345/OurWork/Project/26/MortgageBancLLC
我已经为 Project/ 页面实现了这一点,但其他页面却崩溃了。我使用局部视图在其他页面上显示我的最新项目。此局部视图显示主页、服务、关于等页面上的最后三个项目。
我尝试重新排序我的路线列出的顺序,但它只部分有效。如果我颠倒路线的顺序,则页面会加载,但我的 url 会更改为:
http://localhost:12345/OurWork/Project/26?slug=CompanyNameHere
这是我的路线:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new[] { "Web.Controllers" }
);
//This is my SEO friendly route
routes.MapRoute(
"SeoFriendlyRoute",
"{controller}/{action}/{id}/{slug}",
new { controller = "OurWork", action = "Project", id = UrlParameter.Optional, slug = UrlParameter.Optional }
);
这是我传递我的 id 和 slug 的链接:
<a href="@Url.Action("Project", "OurWork", new {id = item.Project.Id, slug = @item.Client.Name })">CompanyName</a>
我的猜测是我需要添加另一个路由,但是当主页使用一个路由而部分视图将使用另一个路由时,我不确定如何处理。
请指教。谢谢
【问题讨论】:
标签: asp.net-mvc routing asp.net-mvc-routing