Рендеринг PartialViews через jQuery - эффективный способ обновления только частей View.
Не вдаваясь в jQuery и как его использовать, давайте просто погрузимся.
В вашем View, PartialView или MasterPage, ссылка на файл сценария jQuery.
<script src="../../Scripts/ jquery-1.3.2.min.js"></script>
Прежде всего, мы собираемся создать ActionResult, который будет вызывать функция jQuery. Он точно такой же, как и любой другой ActionResult, только он не возвращает View, вместо этого он возвращает PartialView.
public ActionResult getFilteredData(string filter)
{
//do something interesting with filter like
//returning a list of items from a db
//once we have our data we can return
//a partial view giving to it the data as its model
return PartialView("MyPartialView", returnedDataList);
}
Вот и все для ActionResult.
Как я надеюсь, вы видите, что метод просто принимает параметр, фильтрует данные в список, а затем возвращает PartialView, у которого список данных является определенной моделью.
HTML выглядит так:
<div id="myPartialView">
</div>
Обратите внимание, я назвал div так же, как частичное представление. Эти два понятия никоим образом не связаны, я просто думаю, что это упрощает чтение.
Теперь для jQuery.
$.post("/MyController/getFilteredData", { filter: “dogs” },
function(newHTML) {
document.getElementById("myPartialView").innerHTML = newHTML;
});
Таким образом, все, что делает jQuery - это отправляет обратно в действие, передавая фильтр «собак». Ответ от ActionResult записывается в newHTML, который затем помещается в div с именем myPartialView.