Я реализовал сопоставление URL-адресов в нашем приложении ASP.NET 4, но у меня возникла проблема с некоторым нашим контентом.
В некоторых наших продуктах есть дефис "-" или знак вопроса "?" в них. Это не вариант, чтобы удалить это. Название продукта может быть " Мой продукт - хорошо для вас? ".
Мы используем два пользовательских метода: MakeUrlSeoReady и MakeUrlNonSeoReady . Мы заменяем пространство следующим образом: Replace ("", "-"), так как это наиболее дружественное к SEO решение. Тем не менее, мы также должны сделать эту работу с вопросительными знаками и дефисами.
Причина, по которой мы используем методы MakeUrlSeoReady / NonReady, заключается в возможности показать «настоящее» имя.
В настоящее время отображение определяется следующим образом:
routes.MapPageRoute("Produkt visning",
"artikler/{Categoryname}/{SubCategoryname}/{ProductName}",
"~/SingleProduct.aspx");
Итак, я извлекаю продукт в зависимости от ProductName. Я использую два метода, которые я создал:
public static string MakeUrlNonSeoReady(string text)
{
return text.ToLower().
Replace("oe", "ø").
Replace("aa", "å").
Replace("ae", "æ").
Replace("-", " ");
}
public static string MakeUrlSeoReady(string text)
{
return text.ToLower().
Replace("ø", "oe").
Replace("å", "aa").
Replace("æ", "ae").
Replace(" ", "-");
}
Итак, на странице SingleProduct.aspx я использую следующую строку для получения из нашей базы данных:
string categoryName = HelperFunctions.MakeUrlNonSeoReady(Page.RouteData.Values["ProductName"]);
Но это, конечно, не сработает. Так что любая помощь очень ценится: -)