ASP.NET MVC如何在頁面加載完成后ajax異步刷新


背景:之前已寫過兩篇有關Ajax的隨筆,這一篇是單獨針對在頁面加載完成的Ajax操作。比如說打開學生列表頁面,先加載頁面,然后以Ajax的方式,從數據庫中檢索相應的學生信息,給瀏覽者更好的體驗。

簡單版本:document加載完成之后,調用ajax刷新當前頁面,修改pLoad的顯示文本。

前台代碼如下:

 1 <body>
 2     <div>
 3         <p id="pLoad">Ajax之前的結果</p>
 4     </div>
 5 </body>
 6 </html>
 7 <script>
 8     $(function () {
 9         $.ajax({
10             type: "POST",
11             url: "/PageLoad/Test?City=北京&Name=SharpL&Age=18",
12             cache: false,
13             data: null,
14             success: function (result) {
15                 if (result) {
16                     $("#pLoad").text("ajax之后的結果為 " + result.Message + "\n");
17                 }
18             }
19         })
20     });
21 </script>
View Code

如代碼所示,在加載完成之后,ajax調用PageLoad控制器下的Test動作方法,后台代碼如下:

 1         public ActionResult Test()
 2         {
 3             var actionResult = default(JsonResult);
 4             var stu = new STU();
 5             this.UpdateModel(stu);
 6             var tmp = string.Format("{0}{1}歲,來自{2}", stu.Name, stu.Age, stu.City);
 7             actionResult = new JsonResult()
 8             {
 9                 Data = new { Message = tmp }
10             };
11             Thread.Sleep(5000);
12             return actionResult;
13         }

根據前台傳遞過來的學生信息,返回一個字符串給ajax,注意Thread.Sleep(5000),使當前的進程休息5秒,使ajax的效果更加明顯,效果圖如下:

剛剛加載完Document之后:

5秒鍾之后:

 

補充:以$.post()的方式發起Ajax請求,參考鏈接:AJAX請求 $.post方法的使用

等價的AJax代碼1:

1         $.post("/TestAjax/Test", { City: '北京', Name: 'Sharp', Age: 23 }, function (result) {
2             if (result) {
3                 $("#pDisplay").text("返回信息為 " + result.Message + "\n" + "隨機數為" + result.RandomNum);
4             }
5         });

等價的Ajax代碼2:

1         $.post("/TestAjax/Test?City=北京&Name=SharpL&Age=45", "", function (result) {
2             if (result) {
3                 $("#pDisplay").text("返回信息為 " + result.Message + "\n" + "隨機數為" + result.RandomNum);
4             }
5         });

 


免責聲明!

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



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