6

当我调用 Request.RawUrl 时,我没有得到域名(至少在开发中)。

例如,如果我的本地网址是:

http://localhost:2343/some/thing

对 Request.RawUrl 的调用正在给我回馈:

/某物

我记得它会返回所有内容,这是本地开发人员的行为吗?

更新

我也在使用 Url Re-Writing,所以像 Request.Url.AbsoluteUri 这样的东西返回内部 url,而不是我需要获取的重写 url。

那么javascript是唯一的方法吗?

或者我也许可以使用 Request.RawUrl 作为 url 部分,然后以某种方式获取域名部分?(有时它也有一个端口......)

4

6 回答 6

7

根据文档

原始 URL 定义为 URL 中域信息之后的部分。在 URL 字符串http://www.contoso.com/articles/recent.aspx中,原始 URL 是 /articles/recent.aspx。原始 URL 包括查询字符串(如果存在)。

您可以使用Request.Url.AbsoluteUri来获取整个内容。

于 2010-01-26T15:53:12.683 回答
1

这种行为是设计使然。RawUrl只返回域名后面的 url 部分,加上任何查询字符串参数。

如果您想要完整的网址,请使用Request.Url.

于 2010-01-26T15:53:47.807 回答
1

返回的RawUrl只是您的域之后的 URL。

有关 RawURL 的示例,请参阅此页面

于 2010-01-26T15:52:37.373 回答
1

来自Request.RawUrl上的 MSDN 文档:

The raw URL is defined as the part of the URL following the domain information.

您正在寻找Request.Url

于 2010-01-26T15:53:14.737 回答
1

看看你得到了什么Request.Url.

于 2010-01-26T15:51:52.530 回答
1

要使这适用于重写的 URL,您可以结合以下内容:

var result = Request.Url.GetLeftPart(UriPartial.Authority) + Request.RawUrl;
于 2019-10-16T11:44:13.983 回答