Динамический параметр по умолчанию в таблице маршрутизации - PullRequest
1 голос
/ 16 мая 2019

Я настраиваю таблицу маршрутов для своего приложения и хочу перехватывать маршруты без указания языка и перенаправлять на страницу с указанным языком.Теперь я нашел решение в маршрутизации маршрутов только в RouteConfig, но проблема в том, что Initialize () вызывается только один раз, а параметр по умолчанию считается только один раз.

[InitializableModule]
[ModuleDependency(typeof(ServiceContainerInitialization))]
public class RouteConfig : IInitializableModule
{
    public void Initialize(InitializationEngine context)
    {
        LocalizationService localizationService = LocalizationService.Current;
        var currentLanguage = localizationService.GetString($"/locale/{ContentLanguage.PreferredCulture.Name}", ContentLanguage.PreferredCulture.Name);

        RouteTable.Routes.MapContentRoute(
            "EpiSeverRegisteredRoute",
            "{language}/{node}/{action}",
            new { language = currentLanguage, action = "index" });
    }

    public void Uninitialize(InitializationEngine context) {
    }

    public void Preload(string[] parameters) { }
}

1 Ответ

0 голосов
/ 06 июня 2019

Я решил свою проблему, добавив метод Application_BeginRequest (Object, EventArgs) в мой файл Global.asax, где я проделал ту же работу со службой локализации и перенаправил на маршрут с другим заданным языком. Теперь этот метод вызывается в начале каждого запроса, и он не на 100% хорош, как для меня, но работает.

https://docs.microsoft.com/en-us/dotnet/api/a4swift_mrsr.global.application_beginrequest?view=bts-swift-dotnet

...