|
Модераторы: gambit |
|
korob2001 |
|
||||||
Эксперт Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
Всем привет!
Столкнулся с такой проблемой. На сайте нужно сделать меню переключения с одного языка на другой. Сделал частичное представление:
Подключаю его в мастер странице:
Меню выводится, но ссылки указывают на контроллер Master и его действие LangMenu. Вот код этого действия:
Вобщем мне нужно узнать текущий контроллер и действие, но не частичного представления и не мастер страницы, а именно той страницы где пользователь выбрал другой язык, что бы после смены языка он остался на той же странице. Заранее благодарен за любую информацию. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||||
|
|||||||
Cheloveck |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: 1 Всего: 32 |
Укажи в параметрах имя контроллера и экшена вместо null.
Добавлено через 2 минуты и 54 секунды https://msdn.microsoft.com/en-us/library/dd...=vs.118%29.aspx -------------------- |
|||
|
||||
korob2001 |
|
||||||||
Эксперт Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
Меню расположено в мастер странице, т.е. язык можно выбрать с любой страницы. Думаю не логично будет перебрасывать пользователя на главную, либо какую-то другую страницу, если он просто решил поменять язык.
Мне нужно как-то определить текущий контроллер и действие, если я указываю null, то определяется контроллер и действие частичного представления. [ChildActionOnly]. Например пользователь зашёл на главную страницу сайта:
Меню для выбора языка должны содержать такие ссылки:
Если он например зашёл на страницу:
Меню выбора языка должно содержать такие ссылки:
Думаю понятно, что жёстко вписать имя контроллера и действия не получится, так как в каждом View ссылки будут меняться. Мне нужно как-то передать по цепочке View -> MasterPage -> PartialView текущий контроллер и действие. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||||||
|
|||||||||
Cheloveck |
|
||||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: 1 Всего: 32 |
Вообще, с такими линками тяжело будет жить. На каждый чих кастомные решения придётся писать. Я бы посоветовал передавать язык в query string
Хотя, если такой вот раут как следует замапить, то получится то, что надо
Не уверен, что это заработает, негде проверить. Это сообщение отредактировал(а) Cheloveck - 20.5.2015, 20:29 -------------------- |
||||
|
|||||
korob2001 |
|
||||
Эксперт Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
Ну с роутами вроде проблем нет. Не могу сгенерировать правильную ссылку. Насколько я понимаю, мне нужно каким-то образом передать из мастер страницы, имя текущего контроллера и экшена, в метод:
Т.е. вызов дочернего представления, в мастер странице, должен выглядеть как-то так:
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
Cheloveck |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: 1 Всего: 32 |
-------------------- |
|||
|
||||
korob2001 |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
Да и сигнатура метода должна измениться на примерно такую:
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
Cheloveck |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: 1 Всего: 32 |
Я бы просто добавил во все экшн-методы параметр lang и таскал бы его по всем вьюхам. Тогда все экшены будут примерно такого вида
Добавлено через 1 минуту и 13 секунд Соответсвенно из меню будет зваться тот же экшн-метод, что отрендерил текущую вьюху, только с другим lang. А потом запихнёшь этот lang во все линки и формы. -------------------- |
|||
|
||||
korob2001 |
|
||||
Эксперт Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
да язык, будет сохраняться в куках, по сути это меню нужно будет только для того, что бы перезаписать куки. Добавил 2 строки в начале метода:
и всё заработало. Cheloveck ОГРОМНОЕ СПАСИБО ЗА ПОМОЩЬ -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
||||
|
|||||
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разработка под ASP.NET | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |