asp.net mvc4 使用分部視圖來刷新數據庫


前幾天研究SSE,用瀏覽器做偵聽后台數據庫數據變化,如果有更新,就即時通過瀏覽器,使用SSE效果果然OK,偵聽數據庫有更新時馬上會向瀏覽器通知有新數據,我還在瀏覽器里放了短音提示,但遇到一個問題,發出短音提示時刷新頁面,即時顯示出數據的變化,由於網頁頁面中使用的元素復雜,使用JS來改變難度很大,還不如重新加載一次網頁來的方便,但整網頁重新加載會使用剛剛顯示的通知信息和短音提示消失,起不到通知客戶的效果,所以想來想去,還是局部刷新比較好,這時想到asp.net MVC4有個分部視圖可以做個局部刷新,實現了一下,達到了要求,以后應該多用分部視圖,大大提高靈活性。

具體實現就不寫了,來點簡單的思路:

1.寫好分部視圖的控制器

public PartialViewResult GetData(){
    //這里加載一些頁面需要的數據,可以使用ViewBag,ViewData,還可以使用Model
   var list=dao.get......;
   return PartialView(list);             
}

2.寫好分部視圖的網頁

@model List<String>
@using Info.Models;
<div>
//顯示從控制器獲取的數據庫
</div>

 

3.主頁中加入分部視圖

<div class="mainbox">
    @{Html.RenderAction("GetData");}
</div>

4.在主頁中使用JS加載分部視圖

var es=new EventSource("/Home/SSE");

es.onmessage=function(e){
   if(e.data=="ok"){//說明數據庫有更新
      $(".mainbox").load("/Home/GetData");
      document.getElementById("mp3").play();
      $("#msg").text("有新的數據已提交").show();  
    }   
}

這樣就實現了有新數據時即時更新頁面,通過分部視圖局部加載控制器中的數據到網頁頁面中。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM