2015-05-23 2 views
0

У меня возникли проблемы с перезагрузкой частичного представления после успеха ajax. Мой частичный вид хранится вReload Partial View

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

Это находится в индексе зрения отдела

Я пытаюсь это (что, очевидно, не работает)

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

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

Благодаря

ответ

0

получил эту работу с помощью моего коллеги ...

В моем контроллере я должен был вернуть HTML для частичного представления в ответ Json.

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

также создать класс BaseController с методом для RenderPartialViewToString

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(); 
     } 
    } 

Окончательно на мой взгляд, должен был добавить следующую строку

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