0
У меня только маршрут. Он настроен как:Url.Action не работает с параметром языка
routes.MapRoute(
name: "Default",
url: "{lang}/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", lang = "en", id = UrlParameter.Optional },
constraints: new { lang=new LanguageConstraint()
}
);
Я создаю ссылку с помощью
<a href='@Url.Action("Index", "Results", new { lang=System.Threading.Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName}')</a>
но ссылка не навощенный вообще. Что я делаю неправильно? Кажется хорошо. У меня есть указатель и контроллер результатов. Это нормально, когда у меня есть маршрут по умолчанию MVC поставляется с {контроллер}/{действие}
Это LanguageConstraint:
public class LanguageConstraint : IRouteConstraint
{
public bool Match(System.Web.HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
{
if (routeDirection == RouteDirection.IncomingRequest)
{
string language = values["lang"].ToString(); //(en|hr|de|it|fr|sk|nl|hu|sv|pl|cs|ru|sl
if (language == "en" || language == "hr" || language == "de" || language == "it" || language == "fr" || language == "sk" || language == "nl" ||
language == "hu" || language == "sv" || language == "pl" || language == "cs" || language == "ru" || language == "sl")
return true;
else
return false;
}
return false;
}
}
Каков фактический URL-адрес, который генерируется? – haim770
Сгенерированный URL-адрес. –
'LanguageConstraint' - это ваш собственный класс? Можете ли вы представить его под вопросом? –