ASHX呼叫ASPX.cs的方法

问题来自论坛,有网友这样的要求,在ASHX内呼叫ASPX.cs的一个方法或函数。

在一个网站中,也许不止只有一个aspx网页。
把aspx.cs内的方法宣告为public,ashx想呼叫时,也不知道是哪一个aspx内的方法。
就是某一个aspx.cs有引用了这个ashx,这个ashx也不知道呼叫的方法在当前这个aspx中。

为了解决上面的问题,Insus.NET创建一个接口(interface)

在站点中,创建一个aspx,名称暂叫A.aspx。在a.aspx没有写任何代码,但在a.aspx.cs内,需要实作刚才写好的接口:

现在我们写一个Handler:名称叫B.ashx:

试运行看看:

下面内容于2014-04-11 08:10分补充与整理:
在开发asp.net的网站,很多时候想PageA.aspx.cs中想呼叫PageB.aspx.cs内的方法,或是反过来,PageB.aspx.cs中想去呼叫PageA.aspx.cs内的方法。
一般情况之下,是不能实例化后呼叫的。如参考此方法,可以迎刃而解。
举个例子说明:

在PageB.aspx.cs定义一个Say方法:

然后PageA.aspx.cs去呼叫PageB.aspx.cs内的Say方法:

网页执行结果:

既然用到了反射Reflection,那也可以省去了接口。

ASHX呼叫ASPX.cs的方法

时间: 2024-10-11 01:25:07

ASHX呼叫ASPX.cs的方法的相关文章

ASCX呼叫ASPX.CS的方法

为了安全设计,一般情况之下,改用为接口(interface).在网页中实现这个接口:用户控件:当然,把用户控件ascx拉至网页之后,在用户控件的linkbutton的click事件,就可以呼叫至网页的方法了:演示:原本写完成了,但插入一些另外在网上看到的方法,很多网友就会想到,直接把this.page转为_Default网页类即可.如:实现如下: 这样根本是无法呼叫得到.为什么呢?先要了解用户控件,是用户控件的应用,是因为多个网页出现相同代码,功能相同而出现用户控件.这个的话,用户控件写好之后,

ajax请求aspx.cs后台方法

前台jquery代码 $(function () { $("#btnfix").click(function () { $.ajax({ type: "post", url: "fix.aspx/test", contentType: "application/json; charset=utf-8", dataType: "json", success: function (data) { console

aspx页面前端使用js 调用aspx.cs后台的方法,不回传

本次使用 Ajax.dll,AjaxPro.dll 两个类库 1.首先添加引用:Ajax.dll,AjaxPro.dll 文件在 Libiary 目录下 2.配置 WebConfig 属性 将 下面2行  放在 httpHandlers 节点里面, 如下 <add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/> <add verb

Jquery ajax调用后台aspx后台文件方法(不是ashx)

在asp.net webForm开发中,用Jquery ajax调用aspx页面的方法常用的有两种:下面我来简单介绍一下. (1)通过aspx.cs的静态方法+WebMethod进行处理 简单的介绍下WebMethod方法的用法 1.修饰符主要用public static修饰 2.方法前面加上[WebMethod]属性表明这是WebMethod方法 3.前台html页面(Client端)访问时要使用post方法,和后台.cs文件进行数据交互,否则会返回整个html页面. 4.当后台页面返回数据后

WebForm.aspx 页面通过 AJAX 访问WebForm.aspx.cs类中的方法,获取数据(转)

WebForm.aspx 页面通过 AJAX 访问WebForm.aspx.cs类中的方法,获取数据 WebForm1.aspx 页面 (原生AJAX请求,写法一) <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="IsPostBack.WebForm1" %> <!DOCTYPE htm

用juery的ajax方法调用aspx.cs页面中的webmethod方法示例

juery的ajax调用aspx.cs页面中的webmethod方法:首先在 aspx.cs文件里建一个公开的静态方法,然后加上WebMethod属性,具体实现如下,感兴趣的朋友可以参考下哈,希望对大家有所帮助 首先在 aspx.cs文件里建一个公开的静态方法,然后加上WebMethod属性. 如: [WebMethod] public static string GetUserName() { //...... } 如果要在这个方法里操作session,那还得将WebMethod的Enable

WebForm.aspx 页面通过 AJAX 访问WebForm.aspx.cs类中的方法,获取数据

WebForm1.aspx 页面 (原生AJAX请求,写法一) <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="IsPostBack.WebForm1" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//

ASP.NET ASHX中获得Session的方法

1-在 aspx和aspx.cs中,都是以Session["xxx"]="aaa"和aaa=Session["xxx"].ToString()进行读写. 而在ashx中,Session都要使用context.Session,读写方法是这样的: context.Session["xxx"]="aaa"和aaa=context.Session["xxx"].ToString() 2-在ash

WebForm 【aspx与aspx.cs的关系】

<1> aspx页 ASPX是前台,表示设计页面,ASPX.CS是后台,是代码功能实现,分开来设计是为了代码清晰,功能模块化, Inherits表示继承,Inherits="Home.WebForm1"表示继承Home命名空间下的WebForm1的page,也可以继承其他页面,继承了其他页面,就可以使用其属性和方法. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind