2016-09-12 6 views
1

Сценарий:
DNS-имя локализуется как. Все эти данные указывают на том же сайте:MVC - локализованные URL-адреса/маршруты

  • www.mavoiture.com (фр)
  • www.mycar.com (ен)
  • www.meinauto.com (де)

Я не хочу использовать коды языков в адресах!

- www.mavoiture.com/maison/enregistrer (фр)
- www.mycar.com/house/register (ен)
- www.meinauto.com/Haus/registrieren (де)

Я могу регистрировать атрибуты Route для методов действий на каждом языке.

Это работает на первый взгляд. Но это не работает, при использовании

URL.Action("MyAction","Controller") 

или

@Html.ActionLink(...) 

или

@Html.RenderAction 

, как я могу настроить маршрутизацию, чтобы иметь локализованные адреса (также гиперссылки) переведенный в текущий язык? Язык определяется именем dns.

ответ

0

Вы хотите использовать @Html.RouteLink(...). Это позволит вам указать маршрут при создании ссылок.

регистрируйтесь все ваши маршруты затем:

@Html.RouteLink("Link to Register", "FR-Route", 
       new { controller = "House", action = "Register" }) 

Ссылку затем будет преобразован в «FR-Route» шаблон, который может быть «B & B/enregistrer».

Url.Action - Вы можете использовать RouteUrl(...).

RenderAction - не имеет большого значения, поскольку конечный пользователь никогда не увидит URL-адрес RenderAction.

+1

Отлично! ......... – Perro