Ajax.net使得服务器端的数据模型能够被javascript所使用

本文介绍如何利用Ajax.net机制让客户端JavaScript访问服务器端使用抽象和继承机制的类。通过示例代码展示如何定义抽象类及其实现,并在JavaScript中调用这些类的方法。
Ajax.net机制使得服务器端的数据模型(即类及其之间的关系)能够被客户端的javascript所使用。而且通过Ajax.net,即使是使用了抽象机制和继承机制的类也能够被客户端的javascript所调用。
以下我们通过测试的代码来说明如何通过Ajax.net使javascript能够访问使用了抽象和继承机制的服务器端的类。
 1.声明抽象类MyClass,其中定义了字符串的数据类型name.
[Serializable()]
public abstract class MyClass
{
    protected string name;
    public MyClass(string name){this.name = name;}
    public string Name{get{return name;}}
    public abstract  void TTTT();
}
2.定义类MyInclude。
[Serializable()]
public class MyInclude
{
    private string ttt;
    public MyInclude(string ttt){this.ttt = ttt;}
    public string Ttt{get{ return ttt;}}
}
 
3. 定义抽象类MyClass的子类MyClassSub,其中包括其它的复杂对象类型 - MyInclude类型的变量testObj。
[Serializable()]
public class MyClassSub:MyClass
{
    protected string test;
    private MyInclude[] testObj;
    public MyClassSub(string name, string test) : base(name)
    {
        this.test = test;
        testObj = new MyInclude[] { new MyInclude("OK") };
    }
    public MyInclude[] TestObj{get{return testObj;}}
    public string Test{get{return test;}}
    public override void TTTT(){}
}
 
4. 在服务器端采用C#实现的Ajax服务器端响应函数MyFunc()中,可以使用MyClassSub来作为返回值的类型
    [Ajax.AjaxMethod()]
    public MyClassSub MyFunc()
    {
        return new MyClassSub("GHJ", "GOOD");
    }
 
5.在页面代表的javascript代码中,GetServerAction函数调用了服务器端的响应函数MyFunc(),在Callback的处理函数MyFunc_CallBack中,我们可以直接使用服务器端声明的类MyClassSub来作为对象。其中response.value的类型就是MyClassSub,response.value.TestObject的类型为MyInclude
    <script language="javascript" type="text/javascript">
    function GetServerAction()
    {
         TempAjaxClass.MyFunc(MyFunc_CallBack);
    }  
    function MyFunc_CallBack(response)
    {
          alert(response.value.Name);                 //弹出框显示 'GHJ'
          alert(response.value);                             // 弹出框显示[object object]
          alert(response.value.TestObj);              // 弹出框显示[object]
          alert(response.value.TestObj[0].Ttt);     // 弹出框显示'OK'
    }  
    </script> 
既然javascript能够使用服务器的抽象机制和继承机制,那么在架构和设计Ajax.net的系统的时候,我们就可以只在服务器端维护一份数据模型,通过[Serializable()]以及Ajax.net的技术就可以将服务器端的数据模型提供给客户端的javascript代码调用,而不需要在javascript中也维护对应的数据模型。

 
 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值