У меня очень странная проблема, допустим, у меня есть следующий маршрут
context.MapRoute("ImageGallery_Default", "Image-Galleries/{category}", new { controller = "Site", action = "Images", category = UrlParameter.Optional });
теперь, если значение маршрута категории на английском языке и, например, имеет значение природы, маршрут будет выглядеть примерно так
http://www.mysite.com/Image-Galleries/Nature
но если значение маршрута категории имеет арабские или ивритские символы Unicode, маршрут испортится, и значение маршрута категории станет раньше, чем подобные галереи изображений
http://www.mysite.com/طبيعة/Image-Galleries
Обновление 1
кажется, что если у маршрута есть только одно значение динамического маршрута, то это не проблема и проблема, но более того, проблема начинает становиться очевидной, попробуйте это
public class FrontEndAreaRegistration : AreaRegistration
{
public override string AreaName
{
get { return "FrontEnd"; }
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute("ImageGallery_Item", "Image-Galleries/{category}/{item}", new { controller = "Site", action = "ImagesItem" });
}
}
и вот мой HTML
<a href="@Url.RouteUrl("ImageGallery_Item", new { category = "طبيعة", item = "اوروبا", id = @item.Id })">اوروبا</a>
и вот как выглядит ссылка в браузере
http://www.mysite.com/Image-Galleries/طبيعة/اوروبا?id=16
обратите внимание на то, как значение элемента item стоит перед категорией, которая должна быть наоборот.
также в Global.asax не определены маршруты, кроме
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{resource}.ashx/{*pathInfo}");
}
Я все потерян на этом, я очень ценю любую помощь