使用ajax渲染部分视图
我已经检查了这个问题 ,它解决了我最初的问题。 但是我不希望仅在用户单击链接时呈现局部视图,我想在页面加载时呈现部分视图,并且可能在加载部分视图时显示进度指示器。
怎么实现呢?
非常感谢您阅读本文。
如果要加载页面然后通过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); } }); });
调节器
public ActionResult GetModule(string partialName){ return PartialView("~/Views/Shared/"+partialName); }
在默认页面上(使用jquery ajax操作)
Loading...
您可以通过编写@Html.Partial(...)
在初始页面中呈现它。