Простой вопрос MVC для начинающего MVC - PullRequest
0 голосов
/ 14 января 2010

У меня есть Ajax ActionLink, который обычно просто возвращает PartialView (который является просто файлом UserControl ascx), однако мои потребности изменились, и я хочу вернуть еще один PartialView (таким образом, всего два PartialViews), которые занимают разные области моего страница ... конечно, я не могу вызвать "return PartialView (" UserControl.ascx ")" дважды подряд подряд ... так что мой вопрос, что было бы элегантно обойти это?

как я могу вернуть два PartialViews БЕЗ обертывания этих двух PartialViews в увеличенное родительское представление? я не решаюсь сделать это, потому что оба элемента находятся в другой части HTML-таблицы, что потребовало бы от меня включения практически всей страницы в родительское представление из-за структуры таблицы, и в этом случае большое количество HTML-данных было бы излишне отправляется в браузер при каждом запросе - что побеждает цель вызова / частичного обновления ajax (поправьте меня, если я ошибаюсь).

Ответы [ 2 ]

1 голос
/ 14 января 2010

Извините, я неправильно прочитал, я думал, что вы хотите вызвать метод действия статически. Если вы хотите обновить 2 части одним щелчком мыши, то я не совсем понимаю, как бы вы сделали это с помощью прилагаемого API-интерфейса. Что вы можете сделать, это создать небольшой javascript (jquery!), Который обрабатывает щелчок ссылки, а затем скрипт загружает страницу рендеринга с помощью ajax.

Я опубликую пример через несколько минут: P

<script src="../../Scripts/jquery-1.3.2.js" type="text/javascript"></script>
    <script language="javascript" type="text/javascript">

        $(document).ready(function () {

              $("#TheLink").click(){        
                    $("#PlaceToUpdate1").load("/Controller/Method/View1");
                    $("#PlaceToUpdat2").load("/Controller/Method/View2");

              }

            });
        }); 
    </script>

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

0 голосов
/ 14 января 2010

Вы можете вручную создать частичные представления в вспомогательных методах HTML. Однако выполнимость такого подхода зависит от того, будут ли частичные представления повторно использованы на других страницах. Я строю элемент управления сеткой данных с нуля, используя вспомогательные методы HTML. Некоторые из моих страниц имеют три или четыре из этих сеток данных, управляемых аккордеонным управлением jQuery для уменьшения занимаемой площади экрана. Я выбрал создание помощника HTML по ряду причин. Во-первых, я ожидал использовать этот элемент управления во всех своих приложениях. Во-вторых, я не хотел обременять свои взгляды связкой условной логики. Наконец, я хотел иметь возможность изменять конфигурацию сетки (включая модель) в представлении, поэтому мне не пришлось бы перекомпилировать каждый раз, когда я менял ее. Сетка поддерживает как модели LINQ-to-SQL, так и определяемые пользователем классы (с использованием отражения), имеет встроенный элемент управления пейджером и механизм поиска, который поддерживает несколько полей поиска в сетке. Я также настроил столбцы так, чтобы они могли отображать форматированный текст, ссылаться на действие контроллера или содержать ссылку mailto :. В самой сетке вы можете определить модель для заполнения сетки, опционально настроить отображаемые столбцы, указать действие и контроллер для созданий, а также указать функцию JavaScript для удалений (поскольку я использую плагин диалога jQuery для подтверждающих сообщений). Все эти изменения управляются в самом представлении.

Изучение способов использования вспомогательных методов HTML дает вам самое близкое представление о серверных элементах управления ASP.NET, которые предоставляет MVC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...