Request.Url.AbsoluteUri在ASP.NET Core 2.0中不起作用(使用System.Web)

时间:2018-12-03 18:05:21

标签: c# asp.net asp.net-mvc asp.net-core asp.net-core-2.0

请尝试在asp.net core 2.0中使用Request.Url.AbsoluteUri获取域URL,但“ Request”不在System.Web命名空间中。这是实现这一目标的流行方法。请在ASP.NET core 2.0中有所不同。请帮忙。 下面是代码行

var verifyUrl = "/user/VerifyAccount/" + activationCode;
var link = Request.Url.AbsoluteUri.Replace(Request.Url.PathAndQuery, verifyUrl);

通常,“链接”应该给我“ http://myDomainName/user/VerifyAccount/276ye6tfhsgt63t6e” 但是System.Web.Request无法正常工作

1 个答案:

答案 0 :(得分:3)

raw对象在ASP.NET Core中有所不同。它不再包含HttpRequest属性。您需要手动构建URI:

Url

var uriBuilder = new UriBuilder { Scheme = Request.Scheme, Host = Request.Host.ToString(), Path = $"/user/VerifyAccount/{activationCode}" }; var link = uriBuilder.Uri.AbsoluteUri; 变量将默认在您的控制器等中可用。如果发现没有Request变量,则可以尝试Request。如果要在视图中执行此操作,则需要HttpContext.Request