如何在剃须刀中获取页面原点?

时间:2012-08-06 16:01:46

标签: asp.net-mvc asp.net-mvc-3 razor request

我正在寻找相当于这个javascript

window.location.origin

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

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

http://website.com

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

4 个答案:

答案 0 :(得分:13)

我是

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

保留您的Http / Https,端口(如果适用)和HostName / IP。

DotNetFiddle Examples

更新为帐户,PathAndQuery长度为1。

答案 1 :(得分:1)

你可以尝试

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

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

权限将包括端口号

答案 2 :(得分:0)

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

Request.Url的

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

答案 3 :(得分:-1)

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

如果您想从网址获取相同的信息,则接受的答案将为您提供。

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