Частичное отображение после загрузки страницы - PullRequest
7 голосов
/ 21 декабря 2010

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

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

Существует ли решение в ASP.NET MVC? Есть ли решение этой проблемы?

спасибо заранее: л.

Ответы [ 2 ]

6 голосов
/ 21 декабря 2010

Просто используйте jQuery для привязки HTML-кода, возвращенного методом действия (который должен возвращать результат частичного просмотра - например, вывод пользовательского элемента управления / частичного):

Контроллер:

[HttpGet]
public PartialViewResult GetSomeData()
{
   var data = somewhere.GetSomething();
   return PartialView(data); // partial view should be typed to data.
}

jQuery:

$(document).ready(function() {
   $.get('/home/getsomedata/', function(data) {
      $('#target').html(data);
   });   
});
3 голосов
/ 21 декабря 2010

Я обычно так делаю:

В разметке я резервирую место для загрузки пользовательского элемента управления, как

<div id="i-tabs-5">
    <div style="text-align:right;margin-bottom:6px;">...</div>
    <div id="issueNoteListPlaceholder"></div>
</div>

затем в DOM Ready я делаю ajax-вызов, который возвращает результат частичного просмотра и заменяет содержимое заполнителя

$(document).ready(function () {
    loadIssueNotes();
});

function loadIssueNotes() {
    $.ajax({
        type: "get",
        dataType: "html",
        url: '<%: Url.Content("~/Controller/Action") %>',
        data: {},
        success: function (response) {
            $("#issueNoteListPlaceholder").html('').html(response);
        }
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...