ASP.NET 3.5怎么利用页面方法进行远程调用

转载 2013年12月02日 09:58:20
页面方法只是页面代码类中所暴露的带有WebMethod特性的公共静态方法。页面方法和支持AJAX的Web服务的运行时引擎几乎相同。使用页面方法,我们不用创建和发布服务。

  页面方法的定义

  在页面代码类中定义公共静态方法,并为其添加WebMethod特性,便会将ASP.NET AJAX页面转化为Web服务:

  public class TimeServicePage : System.Web.UI.Page{

  [WebMethod]

  public static DateTime GetTime()

  {

  return DateTime.Now;

  }} 我们可以在页面方法中使用任何数据类型,所有类型在调用期间都会被转换为JSON格式。

  我们也可以在aspx源文件中以内联方式定义Web方法:

  <script type="text/C#" runat="server">

  [WebMethod]

  public static DateTime GetTime()

  {

  return DateTime.Now;

  }</script> 注意,页面方法针对的是给定的ASP.NET页面,只有宿主页面才能调用自身的Web方法,不支持跨页面调用。

  页面方法的启用

  如果ASP.NET AJAX页面的代码类中包含WebMethod修饰的静态方法,运行时引擎会生成与Web服务一样的JavaScript代理类。我们可使用该类的实现来调用服务器方法。该类的名称会被硬编码为PageMethods.

  注意,页面方法在默认情况下是被禁用的。为启用它,我们必须将脚本管理器的EnablePageMethods属性设为true.

  <asp:ScriptManager runat="server" ID="ScriptManager1" EnablePageMethods="true" />

  为能执行页面方法,必须在web.config文件中HTTP模块ScriptModule:

  <httpModules>

  <add name="ScriptModule"

  type="System.Web.Handlers.ScriptModule, System.Web.Extensions" /></httpModules> 该模块的工作过程是,监听会话状态加载后的应用程序事件,执行页面方法,然后为调用者生成响应。由于获取会话状态是在启动页面生命周期之前执行的,所以,这种方法调用不会建立页面的生命周期,也不会进行子控件的初始化和处理。

  页面方法的使用

  页面方法的集合会以固定的类名暴露给JavaScript代码--PageMethods.该类会列出所有静态方法,且该类不需自行实例化。

  PageMethods代理类

  与Web服务的代理类不同,PageMethods代理类总会以内联脚本的形式嵌在引用它的页面主体中。否则,对于不同的页面,该类的名称应各不相同。该类的结构几乎与AJAX Web服务代理类的结构相同。

  页面方法的执行

  以上述代码中的GetTime方法为例:

  function getTime(){

  PageMethods.GetTime(methodCompleted);

  }

  function methodCompleted(results, context, methodName){

  var displayString = results.format("ddd, dd MMMM yyyy");

  $get("Label1")。innerHTML = displayString;} 通过页面方法,我们能够使用HttpContext的Current属性访问视图状态、ASP.NET Cache、User和其他内部对象。HTTP上下文针对的不是页面的生命周期,它在接到请求后就存在,并一直伴随着请求而存在。

ASP.NET 后台调用前台javascript 的方法

从服务端调用客户端函数来操作,也就是在asp.net中调用javascript脚本中已经定义好的脚本函数。一般有以下几种方法 1. Response.Write : 比如在你单击按钮,先操作...
  • softuse
  • softuse
  • 2016年10月09日 11:35
  • 1163

Asp.Net 如何调用js中的函数function ?

http://bbs.csdn.net/topics/330215458 1、直接在前台调用 javascript 函数  很简单,在 head 元素之间加入 script 元素,将 ty...
  • DJ2008
  • DJ2008
  • 2013年09月28日 17:34
  • 5429

Java RMI远程方法调用详解

远程方法调用RMI(Remote Method Invocation),是允许运行在一个Java虚拟机的对象调用运行在另一个Java虚拟机上的对象的方法。 这两个虚拟机可以是运行在相同计算机上的不同进...
  • guyuealian
  • guyuealian
  • 2016年07月22日 17:45
  • 9282

Java远程方法调用

主要参考 http://www.kaixinwenda.com/article-yxc135-7690958.html http://bbs.chinaunix.net/thread-117931...
  • sunmenggmail
  • sunmenggmail
  • 2013年01月26日 10:09
  • 7068

asp.net调用js方法小结

asp.net调用js方法小结 key:asp.net js方法互调   asp.net 前台如何调用后台方法 1. javaScript函数中执行C#代码中的函数: 方法一:1、首先建立一...
  • GoodShot
  • GoodShot
  • 2013年02月22日 03:14
  • 4219

远程调用的几种方式

在分布式服务框架中,最基础的问题就是远程服务是怎么通讯的。首先来看看计算机系统网络通信的基本原理,网络通信需要做的就是将流从一台计算机传输到另外一台计算 机,基于传输协议和网络IO来实现,其中传输协...
  • kanglix1an
  • kanglix1an
  • 2015年06月29日 20:28
  • 2668

分布式计算——远程对象和远程方法的调用

分布式计算中有个远程方法的调用,在此基础上有个作业是在调用的远程方法中传递两个参数, 一个参数是本地对象,一个参数是远程对象。 下面就对这次的作业结果进行整理。 作业的要求如下:Java RMI远程方...
  • u011215133
  • u011215133
  • 2016年04月04日 23:23
  • 1394

ASP.NET—000:调试JS代码

ASP.ENT开发调试页面JS代码相信即使是菜鸟也会,不过我还是要啰嗦一下步骤。因为在页面使用JS太频繁了,而且也太容易出问题了。即使是高手在页面上写长篇的JS代码,也难免有bug出现,出了bug也只...
  • yysyangyangyangshan
  • yysyangyangyangshan
  • 2014年08月01日 22:01
  • 2756

Asp.net 后台调用js方法

1. 用Response.Write方法  代码如下: Response.Write("alert("XXX");");  此方只能调用内部函数,具体调用自定义的函数只能在Response.Write...
  • GrandShaw
  • GrandShaw
  • 2016年11月21日 13:49
  • 3246

ASP.NET中JavaScript 调用后台代码

前序:在不需要右击页面或回发的情况下刷新页面,即JS调用后台代码; 方法一:调用隐藏服务端按钮的点击事件        1、在前端放一个隐藏按钮,将需要调用的后台代码写入OnClick事件中;  ...
  • rosefly110
  • rosefly110
  • 2015年02月12日 18:06
  • 1430
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASP.NET 3.5怎么利用页面方法进行远程调用
举报原因:
原因补充:

(最多只允许输入30个字)