Asp.net Server.Transfer
时间: 2025-06-22 11:38:12 浏览: 12
### ASP.NET 中 `Server.Transfer` 方法详解
#### 一、基本概念
`Server.Transfer` 是一种用于在同一应用程序内的不同页面之间进行导航的技术。此方法不会像 `Response.Redirect` 那样向客户端发送重定向命令,而是直接在服务器端改变要处理的页面[^1]。
#### 二、特点
- **保持上下文**:由于是在同一应用内操作,因此可以保留当前请求的状态信息(如表单数据),并能访问前一页的对象实例。
- **性能优势**:因为不需要额外的HTTP往返过程来完成页面间的转换,所以效率更高一些。
- **局限性**:仅限于同域下的资源转移;无法传递查询字符串参数给目标URL。
#### 三、语法结构
```csharp
public void Transfer(string path);
// 或者带有可选布尔参数表示是否清除未处理的内容缓冲区
public void Transfer(string path, bool preserveForm);
```
#### 四、代码示例
假设有一个简单的场景,在第一个网页 (`WebForm1.aspx`) 上点击按钮后会转移到第二个网页(`WebForm2.aspx`) 并携带某些特定的数据:
##### WebForm1.aspx.cs 文件中的事件处理器定义如下:
```csharp
protected void Button1_Click(object sender, EventArgs e){
// 设置公共属性以便后续页面获取
this.Context.Items["Message"] = "Hello from WebForm1!";
// 执行页面传输至指定路径,并保留POST过来的信息
Server.Transfer("WebForm2.aspx", true);
}
```
##### 接收方 WebForm2.aspx 页面可以通过以下方式读取来自上一个页面的消息:
```csharp
protected void Page_Load(object sender, EventArgs e){
string message;
if (this.PreviousPage != null && !IsPostBack){
// 获取之前设置好的Item项
message = PreviousPage.Context.Items["Message"].ToString();
Label1.Text = $"Received Message: {message}";
}
}
```
阅读全文
相关推荐
















