2012-01-23 3 views
1

부분 뷰가 _Layout.cshtml에 포함되어 있습니다. 그것은 단순히 내 시스템의 상태에 따라 이미지를 변경하는 자바 스크립트 기능을 가지고 있습니다. 데이터를 다시로드 할 필요가 없으며 컨트롤러 코드로 이동할 필요가 없습니다. 부분 뷰를 다시로드하기 만하면됩니다.MVC 3에서 부분 뷰 새로 고침

여기에서 찾은 많은 예제를 시도했지만 어느 것도 작동시키지 못했습니다. 나는 어쨌든 그들이하고있는 일에 너무 복잡하다고 느꼈다. 모든 지침을 부탁드립니다. 그것은 기본적으로 전체 렌더링 된 페이지의 일부이기 때문에

감사합니다,

스티브 부분 레이아웃에로드되어있는 경우

답변

6

직접 다음, 새로 고침하는 간단한 방법이 없다.

가장 좋은 방법은 $.load 또는 컨트롤러 메소드를 치고 결과를 컨테이너 (예 : div)에 렌더링하여 사용할 수있는 모든 요소를 ​​렌더링하는 것입니다. document.ready 또는 그와 비슷한 것을 관찰하여 레이아웃 자체가로드 된 스크립트 내에서이 작업을 수행해야합니다. 일단 그 자리에 있으면 필요한만큼 컨트롤러 메소드를 반복하여 내용을 다시로드하거나 새로 고치는 일은 쉽지 않습니다. jQuery를 예를 들어 :

$(document).ready(function() { 
    RefreshPartial(); 
    window.setInterval(RefreshPartial, 10000); 
}); 

function RefreshPartial() { 
    $('#container').load('/some/controller/endpoint', {parameters});  
} 

이것은 컨트롤러 메소드를 호출 #container 식별 소자의 내부 내용을 설정한다. 원하는 횟수만큼 RefreshPartial으로 전화 할 수 있습니다.

+0

좋습니다. 그게 대부분 내게있어. 자, 같은 거래를 타이머로 설정하는 방법은? – SteveInTN

+0

@SteveInTN'document.ready' 핸들러를 편집하여 10 초마다 refresh 메소드를 호출하는 방법을 보여주었습니다. – kprobst

+0

감사합니다. kprobst! – SteveInTN

1

부분보기는 서버에만 있습니다. 부분을 ​​"새로 고치는"유일한 방법은 서버로 다시 이동하여 다시 가져 오는 것입니다.

분명히 새로 고침이 필요한 부분에서 뭔가를해야합니다. 그것이 무엇이든간에 자바 스크립트에서 호출하여 새로 고침을 수행해야합니다.

+0

꽤 많은 변수가 장면 뒤에서 값을 변경하고 있습니다. 내 부분적으로해야 할 일은 값을 소스로 사용하여 이미지를로드하는 것입니다. 간단히 말하면. – SteveInTN