初试.net使用ajax调用后台方法

前端之家收集整理的这篇文章主要介绍了初试.net使用ajax调用后台方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

方法一:

第一步,建立一个.aspx文件

在查看其源代码里写:即.aspx.cs,主要是使用using System.Web.Services;

关键处:[WebMethod]

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Services;

public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender,EventArgs e)
    {

    }
    [WebMethod]
    public static string HandleEvent01()
    {
        //code...
        return "YOUR DATA";
    }
}

在.aspx文件里写:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<!DOCTYPE html >

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
    <script type="text/javascript">
    $(function(){
     $.ajax({                    
        type: "POST",contentType: "application/json",url: "Default2.aspx/HandleEvent01",//调用WebService的地址和方法名称组合 ---- WsURL/方法名                    
        dataType: 'json',//WebService 返回Json类型 或者 Json/string                   
        success: function(re) {     
         $('#re_method04').html(re.d);  
    }               
    });
    
    });
    </script>  
</head>
<body>
    <form id="form1" runat="server">
    <div id="re_method04">
    
    </div>
    </form>
</body>
</html>

方法二:

建立一个Handler.ashx。类作为后台处理请求:

<%@ WebHandler Language="C#" Class="Handler" %>

using System;
using System.Web;

public class Handler : IHttpHandler {
    
    public void ProcessRequest (HttpContext context) {
        Json j = new Json();
        j.Msg = "试验成功了,哈哈哈哈!";
        context.Response.Write(MyJsonConvert.SerializeObjectEx(j));
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }

}
前台访问:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<!DOCTYPE html >

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
    <script type="text/javascript">
        $(function () {
            $.ajax({
                type: "POST",url: "Handler.ashx/ProcessRequest",//调用WebService的地址和方法名称组合 ---- WsURL/方法名                    
                dataType: 'json',//WebService 返回Json类型 或者 Json/string                   
                success: function (re) {
                    console.info(re);
                    $('#re_method04').html(re.Msg);
                }
            });

        });
    </script>  
</head>
<body>
    <form id="form1" runat="server">
    <div id="re_method04">
    
    </div>
    </form>
</body>
</html>

序列化JSON使用的是Newtonsoft:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Newtonsoft.Json; 

/// <summary>
///MyJsonConvert 
///     序列化对象为JSON
/// </summary>
public class MyJsonConvert
{
	public MyJsonConvert()
	{
		
	}
    public static  string SerializeObjectEx(object value)
    {
        Newtonsoft.Json.Converters.IsoDateTimeConverter timeConverter = new Newtonsoft.Json.Converters.IsoDateTimeConverter();  //这里使用自定义日期格式,默认是ISO8601格式

        timeConverter.DateTimeFormat = "yyyy-MM-dd"; //设置时间格式
        Newtonsoft.Json.Converters.StringEnumConverter enumConverter = new Newtonsoft.Json.Converters.StringEnumConverter(); //枚举值转换成字符串名字
        JsonSerializerSettings JsonSetting = new JsonSerializerSettings();
        JsonSetting.Converters.Add(timeConverter);
        JsonSetting.Converters.Add(enumConverter);
        JsonConvert.SerializeObject(value,JsonSetting);
        return JsonConvert.SerializeObject(value,JsonSetting);
    }

}

待序列化的类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
///Json 
///     返回json数据
/// </summary>
public class Json
{
    private string msg;

    public string Msg
    {
        get { return msg; }
        set { msg = value; }
    }

	public Json()
	{
		//
		//TODO: 在此处添加构造函数逻辑
		//
	}
}


结果:

猜你在找的Ajax相关文章