asp.net怎么在一个文件(a.aspx)中引用另一个文件(b.aspx)

2024-12-01 19:42:58
推荐回答(5个)
回答1:

"引用"有好几种情况:
1.在浏览器里让人同时看到两个页面,a.aspx是b.aspx的父页,那就要用
2.a.aspx需要用b.aspx的执行结果,但是页面不跳转,对用户来说就像访问的就是a.aspx(浏览器的地址栏里显示的是a.aspx),比如把b.aspx做为模板,返回的html放在a.aspx的textarea里面显示它返回的html代码,这种情况比较复杂一点:
StringWriter writer = new StringWriter();
Server.Execute("b.aspx", writer);
String html = writer.ToString() ;
这时候的html就是b.aspx执行后返回的html代码。你可以把这段代码插在a.aspx的任意一个地方。Execute的第一个参数是地址,b.aspx后面可以跟querystring。
3.页面需要跳转,那就用 Response.Redirect("b.aspx"); 这样用户看到的是b.aspx(浏览器的地址栏里显示的是b.aspx)

回答2:


如果 a.aspx 中的方法 b.aspx也能用上,而且这种方法还很多,那么是需要分出一个业务类来实现的。
意思是说 专门写一个类,然后在 a.aspx 和 b.aspx 中调用。
这里可以实现 静态方法。但是由于 a.aspx b.aspx 有可能有不同的客户端访问,可能不安全。但是方法只是一个查询方法的话 就可用静态方法,而且节省空间,速度也快。

举个例子:
比如 a.aspx中有一个datagird 里面的数据是从数据库中得来的,结果你在该页面的基类中实现了 数据库的连接,数据的呈现,这样是可以的。
但是你发现 b.aspx中也有datagird 也要显示相同的数据(或者不同,只是 sql 语句的变化)那么你就很想调用 a.aspx重的方法也以达到重用的目的。

这里就 十分的需要一个 类了
来实现 数据库的连接 数据集合的返回。如果没有数据的操作的话,建议将这个类重的方法做成静态的,返回类型可以是 datatable dataset等。
这样在 a.aspx b.aspx中调用就可实现数据的呈现。

如果要数据操作的话 ,可以将这个类中的数据操作方法 做成线程安全的。

为什么要这么做,是因为 同一条数据 我可能正在查询,而另一个客户端正在修改,或者删除,这样就导致了你看的数据有可能在数据库中已经年过改变或者不存在。

建议学习 mvc 模式!
就到此处吧

回答3:

你可以做一个跳转:比如but控件,在他的事件里给上一句Response.Redirect("b.aspx"); 就行了

回答4:

设置IFRAME,别忘了把IRAME边框设置为0,同时注意B.ASPX中如果META设置是否允许你引用!

回答5:

你指的引用是像asp中的include file这种的吗?
include file在.net是没有的。但是你可以使用用户控件和母版来实现公共界面的设计;在app_code目录中建类就可以实现全局的函数以供调用。