2014-01-30 5 views
0

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

У меня есть страница запроса, в зависимости от выпадающего списка, элементы управления заполняются.

Существует 10 типов запросов, поэтому я рассмотрел возможность использования частичного представления. Я сделаю запрос ajax для выбранного события изменения и в зависимости от того, что выбрано, я верну частичный просмотр, но когда я отправлю основную страницу, как я получу модель для частичного просмотра, могу ли я получить модель отдельно для основного страницы и частичной страницы.

ответ

0

Ю. У меня нет способа передать модель со стороны клиента на сервер для частичного просмотра. Итак, нет, это невозможно.

Поскольку вы хотите предоставить другое частичное представление в зависимости от выбранного элемента, вам необходимо передать эту информацию в браузер, чтобы он мог решить, какое действие нужно вызвать, чтобы визуализировать представление, соответствующее выбранному элементу. Для этого вы можете добавить эту информацию как value каждого элемента в раскрывающемся списке. Этот value может быть чем-то таким же простым, как идентификатор или сложным, как и весь URL-адрес с параметрами, которые вызывают требуемое представление. (Если вы выберете опцию url, вы можете отобразить ее с помощью вспомогательного помощника URL-адреса 2).

Затем в коде, который обрабатывает событие change, вы можете восстановить value выбранного элемента и использовать его в качестве параметра для создания ajax-вызова, который отобразит требуемый частичный вид. (Например, если это URL-адрес, вы можете использовать jQuery.get() или любой другой jQuery-метод ajax с этим URL-адресом).

Идеальная ситуация заключается в том, что вы можете отобразить частичный вид, не завися от предыдущего краснеления основного вида. То есть идеальным является то, что вы можете построить модель для частичного, используя действие и параметры, полученные в вызове ajax.

Но если вам нужна информация, которая должна быть сгенерирована при рендеринге основного вида, вы можете использовать TempData, чтобы сохранить его при рендеринге основного вида и получить его при рендеринге части. (TempData или Session, что зависит от того, что именно вы хотите сделать).

Смежные вопросы