10

我正在寻找这个 javascript 的等价物

window.location.origin

但是服务器端,同时构建 mvc 页面。

例如,如果你在这里 http://website.com/123,它会返回

http://website.com

重要的是我有“http://”部分

4

4 回答 4

14

我是

string url = Request.Url.PathAndQuery.length > 1
  ? Request.Url.AbsoluteUri.Replace(Request.Url.PathAndQuery, string.Empty)
  : url;

保留您的 Http/Https、端口(如果适用)和主机名/IP。

DotNetFiddle 示例

更新为说明 PathAndQuery 长度为 1。

于 2012-08-06T16:11:23.810 回答
1

你可以试试

@String.Format("{0}://{1}", Request.Url.Scheme, Request.Url.Authority)

或者

@String.Format("{0}://{1}", Request.Url.Scheme, Request.Url.Host)

授权将包括端口号

于 2012-08-06T16:08:56.697 回答
0

我认为您正在寻找Request.Url或 RawUrl。

Request.Url 的Uri.Scheme将为您提供有关 http/https 差异的信息。

于 2012-08-06T16:05:55.260 回答
-1

javascript 中的 window.location.origin 返回当前 url 的协议、端口(如果有)、域和扩展名。

如果您想从 URL 获取相同的信息,接受的答案将提供给您。

如果您想要相同的行为,即一段 javascript 正在调用您的服务器方法并且您想知道它从哪里调用,您可以检查 HttpRequest.URLReferrer。然而,这很容易被欺骗,因此不可靠。

于 2014-12-12T23:42:20.483 回答