重新加载部分视图

时间:2015-05-23 15:12:45

标签: partial-views

我在ajax成功后重新加载部分视图时遇到问题。我的部分视图存储在

<div id="partial">@Html.Partial("_Departments", Model)</div>

这是在部门视图的索引

我正在尝试这个(显然不起作用)

$("#partial").load('@Url.Action("Index", "_Departments")');

如何重新加载局部视图,其他一切都很好,因为当我刷新页面时,我得到了预期的结果。

由于

1 个答案:

答案 0 :(得分:0)

在我的同事的帮助下得到了这个......

在我的控制器中,我必须在Json响应中返回部分视图的html。

return Json(new { Success = true, Msg = "Field successfully added", html = RenderPartialViewToString("_IndexTable", returnModel) }, JsonRequestBehavior.AllowGet);

还必须使用 RenderPartialViewToString

的方法创建一个BaseController类
public string RenderPartialViewToString(string viewName, object model)
    {
        ViewData.Model = model;
        using (var sw = new StringWriter())
        {
            var viewResult = ViewEngines.Engines.FindPartialView(this.ControllerContext, viewName);
            var viewContext = new ViewContext(this.ControllerContext, viewResult.View, ViewData, TempData, sw);
            viewResult.View.Render(viewContext, sw);
            viewResult.ViewEngine.ReleaseView(this.ControllerContext, viewResult.View);
            return sw.GetStringBuilder().ToString();
        }
    }

我的视图中的finally必须添加以下行

$("#partial").html(data.html);