首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Response.AddHeader的相对路径

使用Response.AddHeader的相对路径
EN

Stack Overflow用户
提问于 2010-03-05 17:09:22
回答 1查看 2.8K关注 0票数 1

我正在运行一个计时器,并在用户更改其密码后执行重定向(AKA,通知他们密码已更改,然后将其发送回主页)。但是,在下面的代码中,我似乎不能做一个相对路径。以下是我想做的事:

代码语言:javascript
复制
Response.AddHeader("REFRESH", "2;URL="~/pages/home.aspx");

为什么这不管用?我怎么才能让它起作用?(我知道我可以在站点的其他部分执行相对路径,但这是因为它正在运行服务器端。)谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-05 17:19:15

您需要为刷新头指定一个绝对URL。看看这个职位,它展示了如何从相对人那里获得一个绝对URL (您可以使用这里显示的ResolveServerUrl ):

代码语言:javascript
复制
Response.AddHeader("REFRESH", "2;url=" + ResolveServerUrl("~/pages/home.aspx"));

供参考:

代码语言:javascript
复制
/// <summary>
/// This method returns a fully qualified absolute server Url which includes
/// the protocol, server, port in addition to the server relative Url.
/// 
/// Works like Control.ResolveUrl including support for ~ syntax
/// but returns an absolute URL.
/// </summary>
/// <param name="ServerUrl">Any Url, either App relative or fully qualified</param>
/// <param name="forceHttps">if true forces the url to use https</param>
/// <returns></returns>
public static string ResolveServerUrl(string serverUrl, bool forceHttps)
{
    // *** Is it already an absolute Url?
    if (serverUrl.IndexOf("://") > -1)
        return serverUrl;

    // *** Start by fixing up the Url an Application relative Url
    string newUrl = ResolveUrl(serverUrl);

    Uri originalUri = HttpContext.Current.Request.Url;
    newUrl = (forceHttps ? "https" : originalUri.Scheme) + 
             "://" + originalUri.Authority + newUrl;

    return newUrl;
} 

/// <summary>
/// This method returns a fully qualified absolute server Url which includes
/// the protocol, server, port in addition to the server relative Url.
/// 
/// It work like Page.ResolveUrl, but adds these to the beginning.
/// This method is useful for generating Urls for AJAX methods
/// </summary>
/// <param name="ServerUrl">Any Url, either App relative or fully qualified</param>
/// <returns></returns>
public static string ResolveServerUrl(string serverUrl)
{
    return ResolveServerUrl(serverUrl, false);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2388528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档