Визуализация частичных представлений с использованием ajax - PullRequest
20 голосов
/ 15 сентября 2011

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

Как этого добиться?

Большое спасибо за чтение.

Ответы [ 3 ]

62 голосов
/ 15 сентября 2011

Если вы хотите загрузить страницу, а затем загрузить частичное представление через ajax, вы можете создать ActionMethod, который выполняет что-то вроде:

public ActionResult Create()
{
     var model = new MyModel();

     if (Request.IsAjaxRequest())
     {
          return PartialView( "_Partial", model.PartialModel );
     }
     else
     {
          return View( model );
     } 
}

, а затем на своей странице сделать что-то вроде:

$(function(){

    $(document).ajaxStart(function () {
        //show a progress modal of your choosing
        showProgressModal('loading');
    });
    $(document).ajaxStop(function () {
        //hide it
        hideProgressModal();
    });

    $.ajax({
          url: '/controller/create',
          dataType: 'html',
          success: function(data) {
             $('#myPartialContainer').html(data);
          }
    });
});
10 голосов
/ 15 сентября 2011

Контроллер

public ActionResult GetModule(string partialName){
    return PartialView("~/Views/Shared/"+partialName);
}

на странице по умолчанию (с использованием операции jquery ajax)

<div id='mod1'>Loading...</div>
<script type="text/javascript">
            $("#mod1").load("/ControllerName/GetModule?partialName=test1");         
</script>
7 голосов
/ 15 сентября 2011

Вы можете отобразить его на начальной странице, написав @Html.Partial(...).

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