2012-03-01 7 views
0

를 다시로드하지 않고 내가 하나 개의 웹 페이지에 ConversionModel 객체의 목록을 표시하고자하는 객체ASP.NET MVC 3 표시 목록 웹 페이지

List<ConversionModel> Queue 

의 ASP.NET MVC 3 웹 응용 프로그램 및 목록을 가지고 웹 페이지를 다시로드하지 않고 5 초마다 새로 고침 MVC 3을 처음 접했고 어떤 예제도 찾을 수 없습니다.

답변

1

AJAX를 사용할 수는 있지만 서버에 좋은 영향을 미치지는 않습니다. 적어도 사이트의 모든 사용자가 5 초마다하는 것입니다.

클라이언트 측 :

<script type="text/javascript"> 
    // This is to refresh the items every 5 seconds (5000 milliseconds) 
    setInterval(getMyData, 5000); 

    function getMyData() { 
     // Using $.getJSON for simplicity, but try to use $.ajax or $.post 
     $.getJSON('/MyController/MyAction', function(response) { 
      var items = response.d.items; 
      // Iterate through the items here and add the items to your web page 
     }); 
    }  
</script> 

서버 측 :

public JsonResult MyAction() 
{ 
    List<ConversionModel> conversionModels = GetMyDataSomewhere(); 
    return Json(new { 
     items = conversionModels 
    }, JsonRequestBehaviour.AllowGet); 
} 
0

jQuery를 사용하면 컨트롤러에 x 분마다 요청을 보내 모델을 부분보기로 반환합니다. 메인 페이지

자바 스크립트는 다음과 같이 수 :

function timerMethod() { 
    $.ajax({ 
     type: "get" 
     url: "/Controller/Action", 
     cache: false, 
     success: function(result){ 
     $("#partialContainer").html(result); 
    } 
}); 

var timerId = setInterval(timerMethod, 5000); // 5 seconds 

컨트롤러/액션 부분 뷰를 돌려 당신의 작업입니다.

또한 Views \ Controller에서 Action이라는 이름으로보기를 작성하고 모델의 모든 오브젝트 (모델은 List<ConversionModel>이어야 함)를 표시하도록 작성해야합니다. 희망이 도움이된다

0

5 초마다보기를 업데이트하면 필요한 모든 것이 바로 타이머와 결합 된 간단한 아약스로 끝날 수 있습니다. , 당신은 (중 데이터베이스에서 ConversionModels 세트를 가져 와서 그것에서 응답을 생성하여 컨트롤러 중 하나의 작업 방식을 가지고 JSON을

셋째해야합니다 참조 또는 직접 HTML 마크 업).

$.ajax() 기능에 대한 설명서를 읽는다면 함께 사용하는 방법을 알 수있을 것입니다.

그러나 실제로 활동에 관계없이 5 초마다 서버를 폴링하는 것보다 유연성이 필요한 경우 서버에서 클라이언트로 데이터를 푸시하는 훌륭한 라이브러리 인 SignalR (예 : 브라우저).