使用AjaxPro.Net框架实现在客户端调用服务端的方法

此文档将使用AjaxPro.Net框架实现Ajax功能:在客户端异步调用服务端方法。AjaxPro.Net是一个优秀的.net环境下的Ajax框架,用法很简单,可以查阅相关资料,本文档是一个简单的实例讲述使用AjaxPro的几个关键点。

1、下载AjaxPro 组件。并将AjaxPro.dll引用到网站(或项目)。下载:Download latest version 7.7.31.1.
2、修改Web.config。在 <system.web> 元素中添加以下代码。
  <configuration><system.web> <httpHandlers> <!-- 注册 ajax handler,2.0以上框架用AjaxPro.2 -->
    <add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2"/>
  </httpHandlers> </system.web> </configuration>
3、对AjaxPro在页Page_Load事件中进行运行时注册。如:
  //AjaxPro.Utility.RegisterTypeForAjax(typeof(所在类的类名));类的类名。如是放在命名空间,则需要写上完整的命名空间(如:namespaces._Default)
AjaxPro.Utility.RegisterTypeForAjax(typeof(testPro1));
4、创建服务器端方法。只要给一个方法加上[AjaxPro.AjaxMethod]标记,该方法就变成一个AjaxPro可进行影射调用的方法。如下:(我现在是新建一个testPro1.aspx页面,在它的cs代码中加入)


代码如下:

[AjaxPro.AjaxMethod]
public string GetString()
{
return "Hello AjaxPro";
}
[AjaxPro.AjaxMethod]
public string GetServerTime()
{
return DateTime.Now.ToString();
}

5、客户端调用:


代码如下:

<script type="text/javascript">
function getTime() {
alert(testPro1.GetServerTime().value);
}
function getServerStr() {
//ajaxPro_guide.GetString(GetString_callback); // asynchronous call
//var p = ClassPro.GetServerTime().toString();
alert(testPro1.GetString().value);
}
</script>

页面中加入以下代码:
    <input id="Button1" type="button" value="获是服务器时间" onclick="getTime()" />
    <input id="Button3" type="button" value="获是服务器对象" onclick="getStudent()" />

二、扩展,客户端访问服务器对象
  1、在App_code中新建类:


代码如下:

public class Student
{
private string _name = "郑伯城";
public int Age = 30;
public string Name
{
get { return this._name; }
set { this._name = value; }
}
}

2、在测试页面testPro1.aspx页面,在它的cs代码中加入


代码如下:

[AjaxPro.AjaxMethod]
public Student GetStudent()
{//服务端添加GetStudent方法
return new Student();
}
private Student student = null;
[AjaxPro.AjaxMethod]
public void SetStudent(Student stu)
{
this.student = stu;
string name = this.student.Name;
}

3、aspx页面的javascript脚本
测试aspx页面中的脚本


代码如下:

<head id="Head1" runat="server">
<title>ajaxPro测试</title>
<script type="text/javascript">
function getStudent() {
var stu = testPro1.GetStudent().value;
alert(stu.Name + " " + stu.Age); //客户js可以访问服务端返回的对象
}
function putStudent() {
var stu = testPro1.GetStudent().value;
stu.Name = "刘宁";
testPro1.SetStudent(stu); //客户提交对象,并且对象的Name字段已经改变为“刘宁”了。
alert(stu.Name + " " + stu.Age); //客户js可以访问服务端返回的对象
}
</script>
</head>

<div><input id="Button3" type="button" value="获是服务器对象" onclick="getStudent()" />
<input id="Button4" type="button" value="客户端提交对象给服务器" onclick="putStudent()" />
</div>
参考:官网

(0)

相关推荐

  • 分享AjaxPro或者Ajax实现机制

    首先声明以下几点: 1.讲解如果感觉很初级的话,就算我装13了,不要"喷"我哦! 2.如果有那些地方不对,还希望大家能指正,一定虚心请教: 3.这只是一家之言,本人经验,无依无据,爱信不信. 下面开讲: 谈起ajax做过web开发的都很是熟悉,就是经由过程xmlhttp request与服务器端通信而避免页面按f5.也就是我们常说的"无刷新",至于这里面的原理我就不懂,哪个懂的话,教一下我啊,谢谢! 凡要使用ajaxpro,咱们大致要做以下工作: 1.在项目中添加引

  • asp.net下使用AjaxPro实现二级联动代码

    复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Test.aspx.cs" Inherits="Test" %> <!DOCTYPE html PUBLIC "-//W3C//Dtd XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1

  • 完美解决Could not load file or assembly AjaxPro.2 or one of its dependencies. 拒绝访问。 原创

    Server Error in '/' Application.  -------------------------------------------------------------------------------- Could not load file or assembly 'AjaxPro.2' or one of its dependencies. 拒绝访问.  Description: An unhandled exception occurred during the 

  • jQuery Ajax 仿AjaxPro.Utility.RegisterTypeForAjax辅助方法

    在某项目中,设计模板字段引擎,采用html+jquery实现,这里的数据就难免需要ajax获取,但是团队对于js掌握不一,所以我写了下面辅助类,可以像ajaxpro一样简化ajax的开发. 代码-jQueryInvokeMethodAttribute (此处只做标示方法处理,所以为空): 复制代码 代码如下: [AttributeUsage(AttributeTargets.Method, AllowMultiple=false,Inherited=false)] public class jQ

  • 编写轻量ajax组件02--浅析AjaxPro

    前言 上一篇介绍了在webform平台实现ajax的一些方式,并且实现一个基类.这一篇我们来看一个开源的组件:ajaxpro.虽然这是一个比较老的组件,不过实现思想和源码还是值得我们学习的.通过上一篇的介绍,我们知道要调用页面对象的方法,就是靠反射来实现的,关键是整个处理过程,包括反射调用方法.参数映射等.ajaxpro不仅在后台帮我们实现了这个过程,在前台也封装了请求调用的方法,例如ajax的相关方法,用ajaxpro的方法就可以发送异步请求了,不需要自己封装js或者使用js库.接下来就对这个

  • ajaxpro.dll 控件实现异步刷新页面

    html代码 复制代码 代码如下: <script type="text/javascript"><!-- function getUserName() { Demo.ajax.GetUserName(document.getElementById("accout").value,getName); } function getName(respone) { document.getElementById("passowrd")

  • 关于服务器或虚拟主机不支持 AjaxPro 的问题终极解决方法

    方法为:在网站属性中 -->> 主目录 -->>配置 -->> 添加一个 .ashx 文件的映射 就可以了 , 映射的文件路径在:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll 扩展名: .ashx 动作:GET,HEAD,POST,DEBUG 检查文件是否存在的勾去掉 首先要在Web.config的<system.web>中添加下面的东东 <httpHandlers>

  • 使用AjaxPro.Net框架实现在客户端调用服务端的方法

    此文档将使用AjaxPro.Net框架实现Ajax功能:在客户端异步调用服务端方法.AjaxPro.Net是一个优秀的.net环境下的Ajax框架,用法很简单,可以查阅相关资料,本文档是一个简单的实例讲述使用AjaxPro的几个关键点. 1.下载AjaxPro 组件.并将AjaxPro.dll引用到网站(或项目).下载:Download latest version 7.7.31.1. 2.修改Web.config.在 <system.web> 元素中添加以下代码. <configura

  • Go语言服务器开发之简易TCP客户端与服务端实现方法

    本文实例讲述了Go语言服务器开发之简易TCP客户端与服务端实现方法.分享给大家供大家参考.具体实现方法如下: Go语言具备强大的服务器开发支持,这里示范了最基础的服务器开发:通过TCP协议实现客户端与服务器的通讯. 一 服务端,为每个客户端新开一个goroutine 复制代码 代码如下: func ServerBase() {      fmt.Println("Starting the server...")      //create listener      listener,

  • 深入理解__doPostBack 客户端调用服务端事件

    在我的随笔<Page,你是怎样处理回发事件的?>中曾提出一个疑问,如何得到引起页面PostBack的控件?通过阅读Page类的源码,误打误撞,无意中看到了__EVENTTARGET和__EVENTARGUMENT这两个常量的定义,并通过调试分析页面,知道了通过Request.Form["__EVENTTARGET"]可以获取到触发页面PostBack的事件源(控件的ID).对于一般的控件,这样就可以了,唯有Button和ImageButton触发的PostBack无法通过这

  • python rpyc客户端调用服务端方法的注意说明

    目录 python rpyc客户端调用服务端方法 问题1 问题2 python rpyc的使用心得 python rpyc客户端调用服务端方法 使用rpyc遇到两个问题: 问题1 client调用server的exposed_xxxx()方法时传进去的参数类型,到了server端会改变, 打印出来是<netref class 'rpyc.core.netref.type'>类型,与原来传进的类型不同 解决方法: def exposed_clentA_will_use(self, hello):

  • Ajax客户端异步调用服务端的实现方法(js调用cs文件)

    ajax的使用方法,在js中调用cs文件中的一直方式,使用步骤如下 (1)下载ajax.dll,并添加项目的引用. (2)在项目的webconfig的<httpHandlers>节点中,添加<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>节点 (3)在aspx页面的pageload方法中添加Ajax.Utility.

  • 解读MySQL的客户端和服务端协议

    如果需要从 MySQL 服务端获得很高的性能,最佳的方式就是花时间研究 MySQL 优化和执行查询的机制.一旦理解了这些,大部分的查询优化是有据可循的,从而使得整个查询优化的过程更有逻辑性.下图展示了 MySQL 执行查询的过程: 客户端将 SQL 语句发送到服务端. 服务端检查查询缓存.如果缓存中已有数据,则直接返回缓存结果:否则,将 SQL 语句传递给下一环节. 服务端解析.预处理和优化 SQL 语句后,传递到查询优化器中形成查询计划. 查询执行引擎通过调用存储引擎接口执行查询计划. 服务端

  • java Nio使用NioSocket客户端与服务端交互实现方式

    NioSocket 客户端与服务端交互实现 java Nio是jdk1.4新增的io方式-–nio(new IO),这种方式在目前来说算不算new,更合适的解释应该是non-block IO. non-block是相对于传统的io方式来讲的.传统的Io方式是阻塞的,我们拿网络io来举例,传统的io模型如下: 服务端主线程负责不断地server.accept(),如果没有客户端请求主线程就会阻塞,当客户端请求时,主线程会通过线程池创建一个新的线程执行. 简单解释就是一个线程负责一个客户端的sock

  • SpringBoot整合WebSocket的客户端和服务端的实现代码

    目录 一.项目中服务端的创建 二.java充当客户端链接ws 1.ws客户端的配置 2.配置信息需要在项目启动的时候去启用和链接ws服务 3.接收服务端推送的消息进行权限过滤demo 4.ws客户端推送消息,推送消息和上面服务端类似. 本文是项目中使用了websocket进行一些数据的推送,对比项目做了一个demo,ws的相关问题不做细数,仅做一下记录. 此demo针对ws的搭建主要逻辑背景是一个服务端B:通讯层 产生消息推送出去,另外一个项目A充当客户端和服务端,A的客户端:是接收通讯层去无差

  • Python警察与小偷的实现之一客户端与服务端通信实例

    本文实例讲述了Python警察与小偷的实现之一客户端与服务端通信,分享给大家供大家参考.具体方法分析如下: 该实例来源于ISCC 2012 破解关第四题 目的是通过逆向police,实现一个thief,能够与police进行通信 实际上就是一个RSA加密通信的例子,我们通过自己编写客户端和服务端来实现上面的thief和police的功能. 要通信,这们这次先通过python写出可以进行网络连接的客户端与服务端. 服务端代码如下: #!/usr/bin/env python import Sock

  • python Socket之客户端和服务端握手详解

    简单的学习下利用socket来建立客户端和服务端之间的连接并且发送数据 1. 客户端socketClient.py代码 import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 建立连接: s.connect(('127.0.0.1', 9999)) # 接收欢迎消息: print(s.recv(1024).decode('utf-8')) for data in [b'Michael', b'Tracy', b'

随机推荐