Мой ответ (в настоящее время):
Приложение имеет базовый контроллер, там я добавил:
if (PathLanguageCode == "" && requestContext.HttpContext.Session["LanguageCode"] != null && requestContext.HttpContext.Request.RequestType == "GET")
{
requestContext.HttpContext.Response.Redirect("/" + requestContext.HttpContext.Session["LanguageCode"] + requestContext.HttpContext.Request.RawUrl);
}
В этом примере не показано, как определяется переменная PathLanguageCode, но по крайней мере должно быть достаточно, чтобы показать, как это можно обрабатывать централизованно, без замены строковых значений.
Единственный недостаток этого подхода, который я вижу, заключается в том, что сайт действительно не дружествен для поисковых систем и т. Д., Поскольку в итоге мы делаем много переадресаций.