• JSON.NET、WebService与JQuery协同工作


      最近换了新公司,暂时还没有开发项目,但是我一向都是为未来项目的做准备的有木有??今天主要研究WebService,与JQuery,还有JSON.NET这三样利器,看到网上JSON.NET的文章不多,所以想发上来大家看看,自己记录一下,不多废话,开始我们的旅程。

      首先下载JSON.NET Codeplex http://json.codeplex.com/

      下载后解压,找到Bin文件夹 ,里面有各种的版本,貌似支持WindowPhone的版本。我们这里选用的2.0的版本

    在项目中添加dll的引用:

    JSON.NET引用完毕后,开始我们今天的工作.

    直接引用新建Web应用程序中的Default.apx,备注:添加JavaScript应用,需要JQuery 1.6.4

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._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="JScript/jquery-1.6.4.min.js"></script>
    <script type="text/javascript">
    var Handler = function() {
    $.ajax({
    type:
    "post",
    datatype:
    "JSON",
    data:
    "{Name:'Edison',Pass:'123'}",
    contentType:
    "application/json;charset=utf-8",
    url:
    "ServiceOne.asmx/HelloWorld",
    success:
    function(data) {
    debugger;
    var result = $.parseJSON(data.d);
    var StrResult=String('');
    for (var i = 0; i < result.length; i++) {
    StrResult
    += "姓名:" + result[i].Name + ",密码:" + result[i].Pass + "<br>";
    }
    $(
    '#div2').html(StrResult);
    },
    error:
    function(e) {
    debugger;
    alert(e);
    }
    });
    };
    $(document).ready(
    function() {
    $(
    "#div1").bind('click', Handler);
    });
    </script>
    </head>
    <body>
    <form id="form1" runat="server">
    <div id="div1">
    123
    </div>
    <div id="div2">
    456
    </div>

    </form>
    </body>
    </html>

    前台页面完成了,后台代码怎么样写呢??

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

    namespace WebApplication1
    {
    /// <summary>
    /// ServiceOne 的摘要说明
    /// </summary>
    [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 ServiceOne : WebService
    {

    [WebMethod(EnableSession
    = true)]
    public String HelloWorld(String Name,String Pass)
    {
    List
    <TomoUser> tomoUsers=new List<TomoUser>();
    TomoUser user
    =new TomoUser();
    user.Name
    = Name;
    user.Pass
    = Pass;
    TomoUser user2
    = new TomoUser();
    user2.Name
    = Name + "1";
    user2.Pass
    = Pass + "1";
    tomoUsers.Add(user);
    tomoUsers.Add(user2);
    String s
    = JsonConvert.SerializeObject(tomoUsers,Formatting.Indented);
    return s;
    }
    }
    }

    到此处我们的JSON.NET与JQuery已经可以正常协同工作了,还是比较给力的.

    这样做有几个有点:

    1.ASMX可以根据方法区分开所获取的数据,不需要建立那么多.ashx文件.

    2.JSON格式确实比较犀利(之前我总是做WinForm 今天算重回Web领域,发现还是Web好啊!!!)

    备注:以上文章是我个人的总结,希望不要被喷,如果有更好的方式或者方法,可以告诉我咱们一些研究下,因为马上Web项目要用,所以自己做了些浅显的研究,没有做个压力测试,没有真正在项目上面使用过,希望各位使用时候要慎重,注意项目风险。

  • 相关阅读:
    Eclipse OSBP 设置 配置
    限制文本框输入的内容
    jquery 操作iframe的几种方法总结
    利用PLUPLOAD上传大文件
    oracle contains
    JSON.parse
    js正则表达式replace里有变量的解决方法用到RegExp类
    Web API WinForm使用HttpClient呼叫Web API
    JQUERY DIALOG窗格内不能使用FORM
    Access forbidden! XAMPP虚拟主机的问题
  • 原文地址:https://www.cnblogs.com/DrEdison/p/2178723.html
Copyright © 2020-2023  润新知