Обновить частичное представление из другого частичного представления - ASP.NET MVC2 - PullRequest
6 голосов
/ 20 сентября 2010

Я хочу иметь два частичных вида , один для SEARCH и один для SEARCHRESULTS.

Я хочу обновить SEARCHRESULTS при нажатии кнопки «Поиск» в форме частичного просмотра SEARCH. SEARCHRESULTS должен иметь данные формы, поданные в него из частичного представления SEARCH.

Я не совсем уверен, как это сделать. Могу ли я обновить SEARCHRESULTS частичное представление из действия контроллера 1011 * моего частичного представления?

1 Ответ

8 голосов
/ 20 сентября 2010

Общие обсуждения
В MVC шаблонные представления не знают друг друга. Они могут быть связаны друг с другом концепцией представления, объединяющего несколько частичных представлений, но даже в этом случае части не знают друг друга. Эта концепция верна для ASP.NET MVC. Майк Бринд отлично справляется с описанием частичных функций и ViewData в своем посте Частичные представления ASP.NET MVC и строго типизированные пользовательские модели представления .

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

Учитывая ваш вопрос, я собираюсь предположить, что частичное представление SEARCH - это простая форма с полем поиска и кнопкой. Пока SEARCHRESULTS - это список возвращаемых данных. В этом случае вы создадите действие контроллера с именем Search, которое принимает строковое значение и возвращает только частичную часть SEARCHRESULTS или представление, содержащее частичную часть SEARCHRESULTS. Скотт Гатри (Scott Guthrie) довольно неплохо описывает передачу данных представлению в своем блоге Передача ViewData из контроллеров в представления .

// returning partial
public ActionResult Search(string q)
{
    //do search .......
    //.................

    return PartialView("SEARCHREULTS", viewdata);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...