2014-11-26 3 views
0

다음 코드가 있습니다. Ajax를 통해 서브 쿼리를 호출하면 호출이 컨트롤러로 이동하는 것을 볼 수 있으며 올바른 결과를 반환합니다. 그러나 성공 했음에도 불구하고 부분은 업데이트되지 않습니다. 그것의 거의 확실한 무언가 나는 나가하고있다, 그러나 나는 지금부터 시작하고있다 그래서 Im는 원형에서 둘레에가는 저것.MVC5 Ajax가 반환 된 부분은 렌더링되지 않았습니다.

내가 부분적으로 모델 세트로 표시하고 싶다면 JSON 데이터를 다르게 처리해야한다는 의문이있다. 그러나 MVC와 아약스로 여전히 발을 찾고 있기 때문에 현재 많은 시행 착오가 있습니다.

@{ 
System.Web.Mvc.Ajax.AjaxOptions ajaxopts = new AjaxOptions() 
{ 
    HttpMethod = "Post", 
    UpdateTargetId = "dlrsTable", 
    OnBegin = "OnBegin", 
    OnComplete = "OnComplete", 
    OnSuccess = "OnSuccess", 
    OnFailure = "OnFailure" 
}; 
} 
@using (Ajax.BeginForm("RefreshGrid", "Dealership", ajaxopts, new { id = "allDlrs" })) 
{ 
@Html.Hidden("showArchived", false) 
@Html.Hidden("ShowPage", 0) 

@Html.AntiForgeryToken() 
<div id="dlrTable"> 
    @{Html.RenderPartial("_allDealerships", Model);} 
</div> 
} 

및 컨트롤러;

public async Task<JsonResult> RefreshGrid(bool? showArchived, int? ShowPage) 
    {    
     try 
     { 
      //code elided, I can see it works and mappedDlrs contains the new data I want 
      return new JsonResult(){ Data = mappedDlrs }; 
     } 
     catch (Exception ex) 
     { 
      _log.Error(ex, string.Format("Error in DealershipController.AllDealerships - Session {0}", Session.SessionID)); 
return new JsonResult() { Data = "Error curred" }; 
     }    
    } 

답변

2

업데이트 대상과 div ID가 일치하지 않습니다.

UpdateTargetId = "dlrsTable" 

<div id="dlrTable"> 

참고 책상 순간에 머리를 두드리는의

+1

그게 가치 사업부 아이디 (또는 UpdateTargetId에 추가 한)에서 이 없습니다. 죄송합니다! – Matt

+0

@Matt - 우리 모두에게 일어납니다! 그것이 우리가 여기있는 이유입니다 :) – Tommy

관련 문제