【整理】asp.net新特性之跨页投递
2009-07-06 15:50
239 查看
跨页投递
让web开发人员决定在进行提交操作时将窗体数据发送到何处。
前提条件
必须是实现了IButtonControl接口的控件,即该控件必须有PostBackUrl属性和Click事件。实现方式:
<asp:Button ID="Button1" runat="server" Text="Button" PostBackUrl="~/TargetPage.aspx"/>
从源页获取信息
通过Page.PreviousPage属性获得对源页的引用;
如果目标页和源页位于不同的应用程序,则不能使用Page.PreviousPage来获取对源页的引用,但可通过Request.Form["控件ID"]来获取源页发送的数据。
源页代码
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" PostBackUrl="~/TargetPage.aspx"/>
目标也代码
Page prePage = Page.PreviousPage;
if (prePage != null)
{
TextBox textBox1 = prePage.FindControl("TextBox1") as TextBox;
if (textBox1 != null)
{
Response.Write(textBox1.Text.Trim());
}
}
获取源页的公共属性
源页代码
aspx页面
<asp:Button ID="Button1" runat="server" Text="Button" PostBackUrl="~/TargetPage.aspx"/>
aspx.cs页面
public string CurrentCity
{
get { return "四川"; }
}
目标页面
aspx页面
<%@ PreviousPageType VirtualPath="~/SourcePage.aspx" %>
aspx.cs页面
Response.Write(PreviousPage.CurrentCity.Trim());
检查目标页中的回发
1.在跨页投递过程中,源页的内容被提交到目标页,执行的是HTTP POST操作
2.在源页跨页投递到目标页的过程中,虽然执行的是POST操作,但目标页的IsPostBack仍然为false。
3.通过在目标页中使用PreviousPage.IsCrossPagePostBack属性来判断目标页是否由于跨页投递接收内容。
跨页发送与Server.Transfer
1.跨页发送是一种基于客户端的传输,Server.Transfer是一种基于服务端的传输
2.用PostBackUrl和Server.Transfer定位到的目标页面都可以使用PreviousPage获取对源页的引用
3.通过PreviousPage.IsCrossPagePostBack属性确定是否是跨页投递
4.PostBackUrl可以重定向到任何页面,而不仅仅是同一个应用程序的页面;Server.Transfer只能定向到同一个应用程序中的页面。
5.在使用Server.Transfer定向到另一个页面的时候,浏览器的URL始终指向的源页的路径,此时点击浏览器的后退和刷新按钮可能会触发异常。
让web开发人员决定在进行提交操作时将窗体数据发送到何处。
前提条件
必须是实现了IButtonControl接口的控件,即该控件必须有PostBackUrl属性和Click事件。实现方式:
<asp:Button ID="Button1" runat="server" Text="Button" PostBackUrl="~/TargetPage.aspx"/>
从源页获取信息
通过Page.PreviousPage属性获得对源页的引用;
如果目标页和源页位于不同的应用程序,则不能使用Page.PreviousPage来获取对源页的引用,但可通过Request.Form["控件ID"]来获取源页发送的数据。
源页代码
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" PostBackUrl="~/TargetPage.aspx"/>
目标也代码
Page prePage = Page.PreviousPage;
if (prePage != null)
{
TextBox textBox1 = prePage.FindControl("TextBox1") as TextBox;
if (textBox1 != null)
{
Response.Write(textBox1.Text.Trim());
}
}
获取源页的公共属性
源页代码
aspx页面
<asp:Button ID="Button1" runat="server" Text="Button" PostBackUrl="~/TargetPage.aspx"/>
aspx.cs页面
public string CurrentCity
{
get { return "四川"; }
}
目标页面
aspx页面
<%@ PreviousPageType VirtualPath="~/SourcePage.aspx" %>
aspx.cs页面
Response.Write(PreviousPage.CurrentCity.Trim());
检查目标页中的回发
1.在跨页投递过程中,源页的内容被提交到目标页,执行的是HTTP POST操作
2.在源页跨页投递到目标页的过程中,虽然执行的是POST操作,但目标页的IsPostBack仍然为false。
3.通过在目标页中使用PreviousPage.IsCrossPagePostBack属性来判断目标页是否由于跨页投递接收内容。
跨页发送与Server.Transfer
1.跨页发送是一种基于客户端的传输,Server.Transfer是一种基于服务端的传输
2.用PostBackUrl和Server.Transfer定位到的目标页面都可以使用PreviousPage获取对源页的引用
3.通过PreviousPage.IsCrossPagePostBack属性确定是否是跨页投递
4.PostBackUrl可以重定向到任何页面,而不仅仅是同一个应用程序的页面;Server.Transfer只能定向到同一个应用程序中的页面。
5.在使用Server.Transfer定向到另一个页面的时候,浏览器的URL始终指向的源页的路径,此时点击浏览器的后退和刷新按钮可能会触发异常。
相关文章推荐
- ASP.NET 3.5核心编程学习笔记(7):单窗体、多窗体、跨页投递、重定向
- asp.net跨页投递
- asp.net mvc 2 新特性[资源整理]
- ASP.NET AJAX Control Toolkit 新扩展特性:AutoCompleteExtender
- asp.net mvc各版本特性一览
- 大年三十整理的asp.net资料!(不得不收藏)
- (轉貼) 大年三十整理的asp.net资料! (.NET) (ASP.NET)
- (翻译)ASP.NET 新特性之本地化
- 传递额外的值 Passing Extra Values |在视图中生成输出URL | 高级路由特性 | 精通ASP-NET-MVC-5-弗瑞曼
- C#与.NET Framework, ASP.NET Web API RC版本新特性:Web API的帮助文档制作
- 微软讲座视频: 微软下一代vNext平台:ASP.NET vNext与MVC6,WebAPI 3.0 新特性
- 一起谈.NET技术,ASP.NET MVC 3 Beta新特性以及.Net开源的趋势----最新译文
- Asp.net Core中SignalR Core预览版的一些新特性前瞻,附源码(消息订阅与发送二进制数据)
- ASP.NET 4.0 新特性--Web.Config Transformation(原创)
- Asp.Net Core Web相对路径、绝对路径整理
- ASP.NET MVC基于标注特性的Model验证:DataAnnotationsModelValidator
- 花了一段时间整理和使用的提高ASP.NET效率的几个方面(希望大家拍砖)
- ASP.NET MVC基于标注特性的Model验证:ValidationAttribute
- ASP.Net七大内置对象 (整理的不错,转过来参考)
- 大年三十整理的asp.net资料!(经典)