asp.net MVC3 + JQuery 的ajax简单使用

 
   
一直都没有使用过JQuery,更没使用过JQuery的ajax支持带来的方便,今天试了一下,真是减少了很多工作量,使用方法也比较简单
这里先记下来,以后使用时可以再拿着用。

本应用中,本来是准备使用长链接的方式,在server端有错误消息产生时,能实时返回错误消息。可在使用长链接时,因为.net功底
不够,以失败告终!所以采用了javascript中间隔查询的方法。
页面代码如下:
  1. @{ 
  2.     ViewBag.Title = "ErrorMonitor"
  3. <script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script> 
  4. <script type="text/javascript" language="javascript"
  5.  
  6.     $(function () { 
  7.  
  8.         setInterval(ajaxRequest, 1000); 
  9.     }); 
  10.     function ajaxRequest() { 
  11.  
  12.         $.ajax( 
  13.         { 
  14.             url: '/TopDemo/Home/ErrorRefresh',      // 指定调用的URL,对应于Controller 
  15.             data: '{}',                             // 如果请求有参数,需要在这里指定 
  16.             type: "POST",                           // 请求类型 
  17.             contentType: "application/json;charset=utf-8"
  18.             dataType: "json"
  19.             success: function (data) {              // 请求成功后的回调 
  20.                 if (data == null || data.length == 0) { 
  21.                     return false
  22.                 } else
  23.                     writeMsg(data); 
  24.                 } 
  25.             }, 
  26.             error: function (data) {                // 请求失败后的回调 
  27.                 alert(data.statusText); 
  28.             } 
  29.         } 
  30.     ); 
  31.     } 
  32.  
  33.     function writeMsg(data) { 
  34.         var errorDiv = document.getElementById("errorDiv"); 
  35.         for (var i = 0; i < data.length; i++) { 
  36.             var errorText = document.createTextNode(data[i].errMsg); 
  37.             var errorTextDiv = document.createElement("div"); 
  38.             errorTextDiv.appendChild(errorText); 
  39.             if (errorDiv.hasChildNodes) { 
  40.                 errorDiv.insertBefore(errorTextDiv, errorDiv.firstChild); 
  41.             } else
  42.                 errorDiv.appendChild(errorTextDiv); 
  43.             } 
  44.         } 
  45.     } 
  46.  
  47. </script> 
  48. <h2> 
  49.     错误监控</h2> 
  50. <div id="errorDiv"
  51. </div> 
@{
    ViewBag.Title = "ErrorMonitor";
}
<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
<script type="text/javascript" language="javascript">

    $(function () {

        setInterval(ajaxRequest, 1000);
    });
    function ajaxRequest() {

        $.ajax(
        {
            url: '/TopDemo/Home/ErrorRefresh',		// 指定调用的URL,对应于Controller
            data: '{}',								// 如果请求有参数,需要在这里指定
            type: "POST",							// 请求类型
            contentType: "application/json;charset=utf-8",
            dataType: "json",
            success: function (data) {				// 请求成功后的回调
                if (data == null || data.length == 0) {
                    return false;
                } else {
                    writeMsg(data);
                }
            },
            error: function (data) {				// 请求失败后的回调
                alert(data.statusText);
            }
        }
    );
    }

    function writeMsg(data) {
        var errorDiv = document.getElementById("errorDiv");
        for (var i = 0; i < data.length; i++) {
            var errorText = document.createTextNode(data[i].errMsg);
            var errorTextDiv = document.createElement("div");
            errorTextDiv.appendChild(errorText);
            if (errorDiv.hasChildNodes) {
                errorDiv.insertBefore(errorTextDiv, errorDiv.firstChild);
            } else {
                errorDiv.appendChild(errorTextDiv);
            }
        }
    }

</script>
<h2>
    错误监控</h2>
<div id="errorDiv">
</div>

Controller的代码也很简单,就是简单的把错误消息列表以json格式返回给View,如下:

 
  1. [HttpPost] 
  2. public JsonResult ErrorRefresh() 
  3.    int errMsgSize = errMsgService.Size(); 
  4.    List<object> errors = new List<object>(); 
  5.    if (errMsgSize > 0
  6.    { 
  7.     for (var i = 0; i < errMsgSize; i++) 
  8.        { 
  9.            ErrorMessageModel errMsg = errMsgService.Remove(); 
  10.            if (errMsg != null)  
  11.            { 
  12.                errors.Add(new 
  13.                { 
  14.                    errMsg = "error:  " + errMsg.ErrorType + "," + errMsg.ErrorKey + "," + errMsg.ErrorTime + "," + errMsg.ErrorMsg 
  15.                }); 
  16.           } 
  17.        } 
  18.    JsonResult result = this.Json(errors); 
  19.    return result; 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值