gpt4 book ai didi

ASP.NET:如何从通用处理程序获取文件的虚拟路径?

转载 作者:行者123 更新时间:2023-12-02 10:27:46 25 4
gpt4 key购买 nike

如何从通用 .ashx 处理程序中将文件的虚拟路径解析为适合浏览器的路径?

例如我想转换:

~/asp/ClockState.aspx

进入

/NextAllowed/asp/ClockState.aspx
<小时/>

如果我是 WebForm Page,我可以调用 ResolveUrl:

Page.ResolveUrl("~/asp/ClockState.aspx")

解析为:

/NextAllowed/asp/ClockState.aspx
<小时/>

但我不是 WebForm 页面,我是通用处理程序。你知道,那个 IHttpHandler 对象注入(inject)了各种各样的东西:

public class ResetClock : IHttpHandler 
{
public void ProcessRequest (HttpContext context)
{
//[process stuff]

//Redirect client
context.Response.Redirect("~/asp/ClockState.aspx", true);
}

public bool IsReusable { get { return false; } }
}

最佳答案

您可以使用 VirtualPathUtility 类来执行此操作。这包含使用路径的各种方法。您需要的是 ToAbsolute(),它将相对路径转换为绝对路径。

var path = VirtualPathUtility.ToAbsolute("~/asp/ClockState.aspx");

但是,您无论如何都可以在 Response.Redirect 调用中使用波浪号,因此以下内容仍然有效:

Response.Redirect("~/asp/ClockState.aspx");

在使用 Response.Redirect 之前,您不需要将 URL 转换为绝对路径。

关于ASP.NET:如何从通用处理程序获取文件的虚拟路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5386412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com