国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
初試Ajax.Net
 從事了幾年的C/S模式的開發(fā),曾一直無暇研究B/S,前段時間攤上了一個B/S的活,這才開始認真的關注其B/S開發(fā)。而且,AJAX技術的風起云涌,也使得B/S應用的表現(xiàn)力日益增強,大有逐步吞食C/S領地之勢。這兩天通過《Ajax基礎教程》開始學習Ajax技術,在附錄的Ajax框架介紹中發(fā)現(xiàn)了這樣一句話:“利用Ajax.Net,你可以從JavaScript客戶調用.NET方法”。這是我夢寐以求的功能啊,于是迫不及待的開始研究下Ajax.Net,初試的結果令我對Ajax.Net非常滿意:)
    
    好了,言歸正傳,先做好準備工作,首先下載Ajax.Net,你可以從
這里獲得。最新版本是6.4.15.1,下載解壓后的文件夾中有個AjaxPro.2.dll,就是它了。使用VS2005新建web項目(注意,AjaxPro.2.dll不支持VS2003),并添加對AjaxPro.2.dll的引用,然后在Web配置文件中添加:
        <httpHandlers>
            
<add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2"/>
        
</httpHandlers>

    這個配置項表明所有的ajaxpro/*.ashx請求(即從客戶發(fā)送的Ajax請求)都交給AjaxPro.AjaxHandlerFactory處理,而不是由默認的System.Web.UI.PageHandlerFactory來處理。 
    新建的web項目有個默認的_Default頁面,我們?yōu)槠浼由厦臻g如MyAjaxNetTest,然后在_Default的HTML第一句也要加上這個名目空間:
<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="MyAjaxNetTest._Default" %>
    然后在PageLoad中注冊本頁面到AjaxPro中:
        protected void Page_Load(object sender, EventArgs e)
        {
            AjaxPro.Utility.RegisterTypeForAjax(
typeof(_Default)); 
        }

    測試一
    一切已經(jīng)準備就緒了,我們先進行第一個測試,從客戶調用服務端的簡單方法。首先在_Default類中添加方法:
         [AjaxPro.AjaxMethod]
        
public string GetServerTime()
        {
            
return DateTime.Now.ToString();
        }
    
   
客戶現(xiàn)在可以在JS中調用這個方法了,如
       <script type="text/javascript">
       function getTime()
       {         
          alert(MyDemo._Default.GetServerTime().value);          
       }
       </script>
    
    然后你可以加個HTML的button,onclick處理函數(shù)設為getTime()。
<input id="Button1" type="button" value="button" onclick="getServerTime()"/>

    
    測試二

    簡單方法調用已經(jīng)OK了,GetServerTime方法返回的是一個簡單的string,那么服務端可不可以返回稍微復雜一點的對象了?我們來試試。先新建一個Student類:
     public class Student
    {
        
public string Name = "sky" ;
        
public int     Age = 26;
    }

    服務端添加GetStudent方法:
        [AjaxPro.AjaxMethod]
        
public Student GetStudent()
        {
            
return new Student();
        }

    對應的,客戶端添加調用:
       function getStudent()
       {
         var stu 
= MyDemo._Default.GetStudent().value ;
         alert(stu.Name 
+ " " + stu.Age) ;
       }

    依照前面的加個HTML按鈕測試getStudent函數(shù),答案是,一切照我們預料的進行,客戶js可以訪問服務端返回的對象。

    測試三
    最后看看能夠在客戶端提交對象給服務器,先在服務端添加方法:
1         private Student student = null;
2         [AjaxPro.AjaxMethod]
3         public void SetStudent(Student stu)
4         {
5             this.student = stu;
6             string name = this.student.Name;
7         }
    可以在第六行添加斷點,然后當客戶端調用時,會進入該斷點。

    客戶端添加調用:
     function putStudent()
       {
            var stu 
= MyDemo._Default.GetStudent().value ;
            stu.Name 
= "chenqi" ;
            MyDemo._Default.SetStudent(stu) ;
       }
    同樣,當調用putStudent這個js方法時,服務端進入斷點已經(jīng)表明客戶成功的提交了對象,并且對象的Name字段已經(jīng)改變?yōu)?#8220;chenqi”了。

    測試四
    前面客戶設置的都是Student的public字段,那么訪問屬性如何了?我們將Student定義更改如下:

     public class Student
    {
        
private string name = "sky" ;
        
public int Age = 26;

        
public string Name
        {
            
get
            {
                
return this.name;
            }
            
set
            {
                
this.name = value;
            }
        }
    }
    再重復前面的測試,結果我想已經(jīng)在你的料想中了。

    單從前面的幾個小測試,我已經(jīng)發(fā)現(xiàn)了使用Ajax.Net的方便與迅捷,看來B/S開發(fā)不再像我以前感受的那樣繁瑣了。
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
單例模式懶漢式\餓漢式
Ajax框架技術的使用方法
Android 使用【AIDL】調用外部服務
【轉】android中service和aidl詳細整理
【MyBatis】第四篇:淺聊resultType_mybatisresulttype
Mybatis關聯(lián)查詢之一對多和多對一XML配置詳解
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服