使用ajax渲染部分视图

pro*_*mad 21 c# ajax asp.net-mvc jquery razor

我已经检查了这个问题,它解决了我最初的问题.但是我不希望仅在用户单击链接时呈现局部视图,我想在加载页面时呈现部分视图,并且可能在加载部分视图时显示进度指示器.

怎么实现呢?

非常感谢您阅读本文.

eri*_*icb 65

如果你想加载页面,然后通过ajax加载局部视图,你可以创建一个ActionMethod类似于:

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

     if (Request.IsAjaxRequest())
     {
          return PartialView( "_Partial", model.PartialModel );
     }
     else
     {
          return View( model );
     } 
}
Run Code Online (Sandbox Code Playgroud)

然后在你的页面中执行以下操作:

$(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);
          }
    });
});
Run Code Online (Sandbox Code Playgroud)


eba*_*lga 11

调节器

public ActionResult GetModule(string partialName){
    return PartialView("~/Views/Shared/"+partialName);
}
Run Code Online (Sandbox Code Playgroud)

在默认页面上(使用jquery ajax操作)

<div id='mod1'>Loading...</div>
<script type="text/javascript">
            $("#mod1").load("/ControllerName/GetModule?partialName=test1");         
</script>
Run Code Online (Sandbox Code Playgroud)


SLa*_*aks 7

您可以通过编写在初始页面中呈现它@Html.Partial(...).