• .net framework 3.5 利用asmx文件,向前台页面传递JSON字符串。


    利用asmx文件 向前台页面发送JSON字符串
    1.前台页面代码

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="jQuery_jSON._Default" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title></title>
        <script type="text/javascript"  src="JS/jquery.js"></script>
        <script type="text/javascript"  src="JS/AJAX_jSON.js"></script>
    </head>
    <body>
        <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        <Scripts>
        <asp:ScriptReference Path="~/JS/jquery.js" />
        <asp:ScriptReference Path="~/JS/AJAX_jSON.js" /> 
        </Scripts>
        <Services>
        <asp:ServiceReference Path="~/services/WebService1.asmx" />
        </Services>
        </asp:ScriptManager>
        <div>
        <input type="button" value="调用webServices序列化JSON对象" id="btn1"/><br />
        姓名:<input type="text" id="name"/><br />
        年龄:<input type="text" id="age" /><br/>
        性别:<input type="text" id="sex" /><br />
        <input type="button" value="反序列化JSON对象" id="btn2"/>
        </div>
        </form>
    </body>
    </html>


    2.创建对象实体类

        public  class  User
        {
            private string name;

            private string sex;

            private int age;

            public int Age
            {
              get { return age; }
              set { age = value; }
            }

            public string Sex
            {
              get { return sex; }
              set { sex = value; }
            }
           
            public string Name
            {
              get { return name; }
              set { name = value; }
            }
        }


    3.创建 asmx文件

      [WebService(Namespace = "http://tempuri.org/")]
        [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
        [System.ComponentModel.ToolboxItem(false)]
        // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
        [System.Web.Script.Services.ScriptService]
        public class WebService1 : System.Web.Services.WebService
        {
            //对象序列化成JSON字符串
            [WebMethod]
            public string GetUser()
            {
                User user = new User();
                user.Name = "michael";
                user.Sex = "man";
                user.Age = 26;

                #region 将对象序列化成JSON字符串返回页面
                var jss = new System.Web.Script.Serialization.JavaScriptSerializer();
                if (user != null)
                {
                    return jss.Serialize(user);
                }
                else
                {
                    return null;
                }
                #endregion
            }

            [WebMethod]
            public void CreateUser(string user)
            {
                User u = (User)this.SetUser<User>(user);
                string test = u.Age + u.Name + u.Sex;
            }

            // JSON字符串反序列化成对象
            public T SetUser<T>(string user)
            {
                #region 将JSON字符串反序列化成对象
                var obj = new System.Web.Script.Serialization.JavaScriptSerializer();
                try
                {
                    return obj.Deserialize<T>(user);
                }
                catch (Exception ex)
                {
                    return default(T);
                }
                #endregion
            }

        }
      }

    4.编写JS文件代码


    $(document).ready(function() {
        $("#btn1").click(function() {
            //调用webServices返回JSON字符串
            jQuery_jSON.services.WebService1.GetUser(disp);
        });
        //json对象显示
        function disp(result) {
            var json = eval('(' + result + ')');
            alert("姓名:" + json.Name + " 性别:" + json.Sex + "  年龄:" + json.Age);
        }

        $("#btn2").click(function() {
            var name = $("#name").attr("value");
            var age = $("#age").attr("value");
            var sex = $("#sex").attr("value");
            var user = "{\"Name\": " + name + ", \"Age\": " + age + ", \"Sex\": " + sex + " }";
            //调用webService
            jQuery_jSON.services.WebService1.CreateUser(user);
        });
    });

    5补充:如果asmx文件中序列化对象集合   

     //将对象集合序列化成JSON字符串
            [WebMethod]
            public string SeriersUser()
            {
                User user1 = new User();
                user1.Name = "michael";
                user1.Sex = "man";
                user1.Age = 26;

                User user2 = new User();
                user2.Name = "Ramy";
                user2.Sex = "women";
                user2.Age = 26;

                User[] user = { user1,user2};
                //序列化JSON字符串
                var jss = new System.Web.Script.Serialization.JavaScriptSerializer();
                return jss.Serialize(user);
            }
         JS代码
         //显示对象集合
        $("#btn3").click(function() {
            jQuery_jSON.services.WebService1.SeriersUser(disp1);
        });

        function disp1(result) {
            alert( result );
            var jss = eval(result);
            for (var i = 0; i < jss.length; i++) {
                alert(jss[i].Name + "|" + jss[i].Sex + "|" + jss[i].Age);
            }
        }




     



     

  • 相关阅读:
    poj 3415 后缀数组+单调栈
    hdu 3450 后缀数组
    hdu 2774 后缀数组
    后缀数组模板(倍增法)
    hdu 4405 概率dp
    zoj 3329 概率dp
    [日常摸鱼]bzoj2875[NOI2012]随机数生成器-矩阵快速幂
    [日常摸鱼]bzoj1038[ZJOI2008]瞭望塔-半平面交
    [日常摸鱼]bzoj1007[HNOI2008]水平可见直线-半平面交(对偶转凸包)
    [日常摸鱼]bzoj3083遥远的国度-树链剖分
  • 原文地址:https://www.cnblogs.com/michaelShao/p/1558120.html
Copyright © 2020-2023  润新知