初试.net使用ajax调用后台方法
发布时间:2020-12-16 01:01:50 所属栏目:百科 来源:网络整理
导读:方法一: 第一步,建立一个.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.W
方法一: 第一步,建立一个.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: 在此处添加构造函数逻辑 // } }
结果:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |