Я хотел бы разработать URL-адреса, которые выглядят следующим образом:
http://mysite.com/products/1/best-product-in-the-world
Где все, что мне нужно, чтобы добраться до правильной записи, - это следующий маршрут:
http://mysite.com/products/1
Когда я добавляю часть описания продукта в URL («лучший продукт в мире»), я получаю проблемы с кодировкой URL. Я пытался использовать Server.UrlEncode при построении этой части моего URL-адреса в ActionLink(...):
<%= Html.ActionLink(item.Subject, "../Post/Detail",
new { id = item.ID,
descriptiveUrl = Server.UrlEncode(Product.ShortDescription) },
new { rel = "canonical",
title = Product.ShortDescription,
@class = "product-hyperlink" })%>
Но это отображает регулярно закодированные элементы для специальных символов и пробелов, как показано ниже:
http://localhost:2392/Products/Detail/1/best+product+in+the+world253f
... который создает исключение 400, неверный запрос. Не уверен, что правильно ответил на вопрос, но при необходимости могу дать дополнительные разъяснения.
Обновление: URL этого сообщения выглядит следующим образом, и я пытаюсь сделать что-то очень похожее!
http://stackoverflow.com/questions/1148955/creating-search-engine-friendly-urls-in-asp-net-mvc