3

我想问一些事情。我使用 asp.net core 2.0 构建了一个简单的电子邮件发件人,我想发送一封带有链接的电子邮件,以将接收者重定向到我的网页,如电子邮件身份验证,但我不知道如何制作回调 URL。

我用 :

<a href='https://"+Request.Scheme+"/Users/Userrole'>Click Here</a>

但电子邮件中的链接是 http:/Users/Userrole

请告诉我如何获取我页面的动态 URL,因为使用 Localhost:443xx/User/Userrole 并不优雅,并且在我在本地计算机上运行时不起作用

编辑,执行此操作的非常简单的方法是 <a href='https://"+this.Request.Host+"/Users/Userrole'>Click Here</a>

感谢 FrustatedDeveloper 的回答

4

1 回答 1

2

ASP.NET 核心

在 Asp.Net Core 中,您可以使用以下命令获取 URL:

var url = $"{Context.Request.Scheme}://{Context.Request.Host}{Context.Request.Path}";
var link = $"<a href='{url}'>Click here</a>";

如果您需要获取查询字符串,则可以使用:

var queryString = Context.Host.QueryString;

请检查以下资源:HttpRequest

如果包含using Microsoft.AspNetCore.Http.Extensions,则还可以使用:

var url = httpContext.Request.GetEncodedUrl();

或者

var url = httpContext.Request.GetDisplayUrl();

原始答案(Asp.Net/MVC 框架)

要创建动态 URL,您可以使用UrlHelper @Url.Action("ActionName", "ControllerName")以及Request.Url.Authority域和Request.Url.Scheme方案(使用 http 或 https)。

var url = $"{Request.Url.Scheme}://{Request.Url.Authority}{@Url.Action("UserRole","Users")}";
var link = $"<a href='{url}'>Click here</a>";

假设您的网站有一个域www.example.com,这将产生一个 URL,如:

https://www.example.com/users/userrole

上面使用字符串插值来组合字符串变量。

于 2019-09-25T09:58:12.457 回答