记性不好,好多次都被路径问题给拦住了.我现在想得到一个资源的全URL路径,因此首先想得到网站当前的域名,端口和虚拟目录.看下表

底下這張表就是各種跟 Browser Request 的網址相關的屬性與用法:



網址:http://localhost:1897/News/Press/Content.aspx/123?id=1#toc

Request.ApplicationPath

/

Request.PhysicalPath

D:\Projects\Solution\web\News\Press\Content.aspx

System.IO.Path.GetDirectoryName(Request.PhysicalPath)

D:\Projects\Solution\web\News\Press

Request.PhysicalApplicationPath

D:\Projects\Solution\web\

System.IO.Path.GetFileName(Request.PhysicalPath)

Content.aspx

Request.CurrentExecutionFilePath

/News/Press/Content.aspx

Request.FilePath

/News/Press/Content.aspx

Request.Path

/News/Press/Content.aspx/123

Request.RawUrl

/News/Press/Content.aspx/123?id=1

Request.Url.AbsolutePath

/News/Press/Content.aspx/123

Request.Url.AbsoluteUri

http://localhost:1897/News/Press/Content.aspx/123?id=1

Request.Url.Scheme

http

Request.Url.Host

localhost

Request.Url.Port

1897

Request.Url.Authority

localhost:1897

Request.Url.LocalPath

/News/Press/Content.aspx/123

Request.PathInfo

/123

Request.Url.PathAndQuery

/News/Press/Content.aspx/123?id=1

Request.Url.Query

?id=1

Request.Url.Fragment


Request.Url.Segments

/

News/

Press/

Content.aspx/

123



这里并没有得到域名的方法.还是只好拆分字符串了,我是这么做的:

        protected string GetBaseUrl()

        {

            return Request.Url.AbsoluteUri.Substring(0, Request.Url.AbsoluteUri.IndexOf(Request.RawUrl));

        }

var fullImgUrl = GetBaseUrl() + "/Views/Images.ashx?id=" + map;


不知是否有更好的方法得到?


记性不好,好多次都被路径问题给拦住了.我现在想得到一个资源的全URL路径,因此首先想得到网站当前的域名,端口和虚拟目录.看下表

底下這張表就是各種跟 Browser Request 的網址相關的屬性與用法:



網址:http://localhost:1897/News/Press/Content.aspx/123?id=1#toc

Request.ApplicationPath

/

Request.PhysicalPath

D:\Projects\Solution\web\News\Press\Content.aspx

System.IO.Path.GetDirectoryName(Request.PhysicalPath)

D:\Projects\Solution\web\News\Press

Request.PhysicalApplicationPath

D:\Projects\Solution\web\

System.IO.Path.GetFileName(Request.PhysicalPath)

Content.aspx

Request.CurrentExecutionFilePath

/News/Press/Content.aspx

Request.FilePath

/News/Press/Content.aspx

Request.Path

/News/Press/Content.aspx/123

Request.RawUrl

/News/Press/Content.aspx/123?id=1

Request.Url.AbsolutePath

/News/Press/Content.aspx/123

Request.Url.AbsoluteUri

http://localhost:1897/News/Press/Content.aspx/123?id=1

Request.Url.Scheme

http

Request.Url.Host

localhost

Request.Url.Port

1897

Request.Url.Authority

localhost:1897

Request.Url.LocalPath

/News/Press/Content.aspx/123

Request.PathInfo

/123

Request.Url.PathAndQuery

/News/Press/Content.aspx/123?id=1

Request.Url.Query

?id=1

Request.Url.Fragment


Request.Url.Segments

/

News/

Press/

Content.aspx/

123



这里并没有得到域名的方法.还是只好拆分字符串了,我是这么做的:

        protected string GetBaseUrl()

        {

            return Request.Url.AbsoluteUri.Substring(0, Request.Url.AbsoluteUri.IndexOf(Request.RawUrl));

        }

var fullImgUrl = GetBaseUrl() + "/Views/Images.ashx?id=" + map;


不知是否有更好的方法得到?