изменить параметр URL MVC - PullRequest
       13

изменить параметр URL MVC

0 голосов
/ 07 октября 2019

У меня есть приложение MVC со следующим форматом URL.

http://localhost:25825/en/applications

, где

  • http://localhost:25825/ = базовый URL
  • ru = язык
  • приложения = остальная часть URL

В настоящее время у меня есть следующие возможности для изменения языка.

<ul>
    <li><a href="~/en">@Resources.Global.LanguagesEnglish</a></li>
    <li><a href="~/tr">@Resources.Global.LanguagesTurkish</a></li>
</ul>

, но при этом очищается оставшаяся часть URL и идет на домашнюю страницу. Есть ли способ изменить язык, сохранив оставшуюся часть URL?

Существует также перевод для маршрутов

.ForController<ApplicationController>()
.ForAction(x => x.Index())
.AddTranslation("uygulamalar")

, поэтому

http://localhost:25825/en/applications

становится

http://localhost:25825/tr/uygulamalar

1 Ответ

0 голосов
/ 07 октября 2019

Это имело бы смысл! Ваш href является основой вашего приложения, и вы ничего не делаете, чтобы захватить текущую страницу или добавить определенную страницу.

Простой способ JS - это функция для получения правильного пути на основе некоторого атрибута. (может быть, даже атрибут данных):

function getLang(lang){
  // this would be your URL and not just a console log
  console.log("~/" + lang + window.location.pathname);
}
<ul>
    <li><a href="#" onclick="getLang('en')">@Resources.Global.LanguagesEnglish</a></li>
    <li><a href="#" onclick="getLang('tr')">@Resources.Global.LanguagesTurkish</a></li>
</ul>

Вы также упомянули MVC, поэтому, возможно, наиболее целесообразно создавать URL-адреса на сервере:

<ul>
   @foreach(var resource in @Resources.Global.Where(x => x.Contains("Languages")).ToList())
{
      <li><a href='@($"~/{resource}/applications")'>@resource</a></li>
}    
</ul>
...