ASP.NET MVC Routing / SEO Friendly URL - PullRequest
       29

ASP.NET MVC Routing / SEO Friendly URL

9 голосов
/ 01 сентября 2010

Я пытаюсь сделать что-то вроде stackoverflow

Взять ссылку из stackoverflow, например:

Скрытые функции C #?

ifВы удаляете последнюю часть ( Скрытые возможности C #? ), она все еще возвращает тот же результат.

Для моей маршрутизации в Global.asax я попытался сделать что-то вроде "{action} / {id} / {title} "

На моей странице это моя ссылка:

<%= Html.ActionLink(video.Title, "Details", "Videos", new {id = video.ID, title = video.Title.Replace(" ", "-")}, null) %>

Это делает то, что я хочу, по большей части, за исключением того, что после идентификатора он добавляет"? Title = бла-бла-бла "

Я хочу, чтобы он сказал " id / бла-бла-бла "

Что такое мойпроблема?(Помимо того, что нуб)

Ответы [ 2 ]

9 голосов
/ 07 июня 2011

Я написал пост в блоге об этом некоторое время назад и подумал, что это может быть полезно:

http://web.archive.org/web/20170416234816/http://mynameiscoffey.com/2010/12/19/seo-friendly-urls-in-asp-net-mvc/

В основном вам нужно проверить в своих действиях наличие правильного SEO-Дружеский заголовок, когда выполняется ваше действие, и, если он не находит его, отправьте в браузер перенаправление на правильный URL-адрес, оптимизированный для SEO.

5 голосов
/ 01 сентября 2010

Этот маршрут выглядит так, как будто он должен работать с этим вызовом ActionLink, так что это немного догадка. Вы регистрируете свой маршрут {action}/{id}/{title} после маршрута по умолчанию? Если это так, маршрут по умолчанию будет совпадать первым, и просто поместите значение заголовка в строку запроса, так как оно не отображается в пути. Если вы зарегистрируете свой собственный маршрут до {controller}/{action}/{id} по умолчанию, он должен работать.

...