![]() |
|
Модераторы: gambit |
![]()
|
|
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Проблема банальна - есть несколько контролов, надо их отрендерить и вернуть разными полями в JSON-объекте. Решается проблема тоже тривиально - если понакопипастить кода из PartialViewResult. Вообще решил ещё банальней - создав отдельный контрол, вызывающий Html.RenderPartial для нужных контролов. Благо контент вообщем-то был практически монолитный (сепараторный див мне не жалко переслать лишний раз..).
Но.. ведь может понадобится лоадить просто различные блоки. Костыльный вариант (возвращать сплошной хтмл разбивать по блокам на клиенте) явно не катит. Вариант с копипастом кода из PartialViewResult/ViewResultBase формально подходит, но.. Неужели нету штатного варианта? |
|||
|
||||
| Veitmen |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 10.11.2006 Где: СПБ Репутация: нет Всего: 4 |
Приветствую.
Надеюсь я правильно понял вашу задачу. Вы хотите после каких то действий пользователя перерендерить контрол и показать его. Верно? Но я не совсем понял зачем вы хотите возвращать набор контролов в JSON. Т.е. рендерит вы будете прямо в контроллере? Или я не верно понял? Можно просто перендерить определенный див со всеми контролами на нем, или положить отдельные контролы в отдельные дивы и перендерить каждый див. Этот мехнаизм поддреживает Asp.Net MVC. Погуглите на тему AJAX partial render. Если это то что вам нужно, могу скинуть сэмпл. Добавлено @ 05:57 Посмотрите на на Ajax.ActionLink с опцией UpdateTargetId. Мне кажется это то что вам нужно.
Это сообщение отредактировал(а) Veitmen - 9.10.2009, 06:07 |
||||
|
|||||
| Veitmen |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 10.11.2006 Где: СПБ Репутация: нет Всего: 4 |
Все, понял ваш вопрос.
Вы можете перендерить ваш контрол. Если вы хотите перерендерить группу контролов, создайте контрол включающий в себя другие контролы. Вариант с рендером какого либо контрола из группы мне не известен. Покопайте в сторону опций аякса, может быть там что нибудь будет, но я сомневаюсь. Это сообщение отредактировал(а) Veitmen - 9.10.2009, 06:34 |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Я хочу вернуть JSON с несколькими отрендеренными контролами. И затем на клиенте уже раскидать хтмл - что куда надо. Это делается, но.. как-то некрасиво. Странно, что нету готового солюшена :(
Это сообщение отредактировал(а) Любитель - 9.10.2009, 06:48 |
|||
|
||||
| Veitmen |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 10.11.2006 Где: СПБ Репутация: нет Всего: 4 |
Да, такого готового решения я не встречал. Только рендер дива конкретного. |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Можно вернуть PartialViewResult, можно JsonResult. А вот скомбинировать (одним движением) - нельзя. Вообщем, считаем вопрос решённым и минус в сторону дизайна ASP .Net MVC (ну.. не то, чтоб минус - но рендеринг partial view в произвольный стрим или как-то так надо было вынести в доступные в контроллере методы).
Это сообщение отредактировал(а) Любитель - 11.10.2009, 21:00 |
|||
|
||||
| Veitmen |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 10.11.2006 Где: СПБ Репутация: нет Всего: 4 |
Мне кажется это противоречит самому MVC. Нет?
Да, но если честно, ни разу мне это не понадобилось. |
||||
|
|||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
Значит не приходилось возвращать клиенту несколько независимых хтмл-блоков В чём противоречие?! |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка под ASP.NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |