2012-08-07 4 views
1

나는 그것이 데이터베이스를 업데이트하고 성공적으로 완료된 후 I는 다음과 같이 할 수있는, 컨트롤러의 액션 AJAX 호출이 업데이트 :MVC3의 뷰 모델의 새로운 데이터 뷰, C#

return PartialView("Overview", mydatamodel); 

success: function (data) { 
      // do something with the data => refresh some 
      // portion of your DOM 
      $('#someDivId').html(data); 
     } 

그리고 그것을 잘 작동합니다,하지만 내가 필요로하는 뷰 모델의 컬렉션을 업데이트하고, 전체보기는 다시 렌더링 할 수 있다는 것입니다 : 다음 성공을 다음과 같이해야 할 일 새로운 데이터.

예를 들어 제출 버튼이있는 경우 전체보기가 새 데이터로 업데이트되지만 아약스 호출이있는 경우 어떻게 할 수 있습니까? MVC3 receiving the new model data after submit

사전에 감사 : 여기

어디에서 자세한 내용을 내 이전 게시물에 링크입니다!

답변

3

전체보기를 업데이트하려면 AJAX를 사용하지 마십시오. 제출 버튼을 사용하기 만하면됩니다. AJAX의 요점은 현재 페이지에서 벗어나지 않고 뷰의 일부분 만 업데이트하는 것입니다. 당신이 window.location.href를 사용하여 클라이언트 측에서 리디렉션 할 수있는 방법으로

:

success: function (data) { 
    window.location.href = '@Url.Action("Overview", "SomeController")'; 
} 

하지만 당신은 항상 성공 AJAX 콜백에 리디렉션 경우 그렇게 할 필요가 정말 없다. 이 시나리오에서는 AJAX를 사용하지 않아야합니다.

+0

오, 그렇다면 올바른 목적으로 사용하지 않았습니다. 도움이 많이되었습니다. 감사합니다! 나는 그 대답을 조금 받아 들일 것이다. 사이트는 내가 그것을 받아 들일 수 있기 전에 조금 기다려야한다고 말한다. :) –

1

일반적으로 AJAX는 요청 완료 후보기의 일부만 업데이트하려는 경우에 사용합니다.

당신이 어떤 이유로 (예를 들어 요청을 보낼 DELETE HTTP 동사를 사용)도 같은 경우에 AJAX를 사용해야하는 경우, 당신이 할 수있는 당신의 success 콜백 함수에서

window.location.href = '/Items/123'; 

같은, 이는 효과적으로 전체 페이지 업데이트를 트리거합니다.

관련 문제