ASP.NET MVC:如何可靠地获取当前请求的真实URL
本文关键字:请求 URL 真实 获取 MVC NET 何可 ASP | 更新日期: 2023-09-27 18:29:11
现在我有一个MVC应用程序正在运行http://127.0.0.1:8081/(它实际上是在Azure计算模拟器中运行的)。浏览器位置栏上清楚地显示端口号为8081。
然而,Request.Url
和Request.RawUrl
都给了我http://127.0.0.1:8082/.
我需要发送一封包含URL的电子邮件,所以我需要正确的主机名和端口号。如何可靠地获得真实的URL,而不会出现这种意外的偏差?
您可以使用Request.Headers["Host"];
,它将为您提供具有正确端口号的主机名(或IP)。然后您可以重新构建URL。
您也可以使用:
Request.Url.Host
或者使用(如果你想要所有的首字母缩写,而不仅仅是主机):
public ActionResult Index()
{
string Domain = Request.Url.Scheme + System.Uri.SchemeDelimiter + Request.Url.Host + (Request.Url.IsDefaultPort ? "" : ":" + Request.Url.Port);
return View(Domain);
}
这是取自"丰富的代码"
如何在ASP.NET MVC中检索当前域?
在Azure的云中,您的进程可以在任何端口号的任何地方运行。当前请求将被路由到进程。
这就是为什么您总是有不同的端口号。
最好在web.config文件中指定域名;如果您从配置文件中读取,那么对于所有请求,它总是相同的。