如何在 ASP.NET 核心中的电子邮件中动态 Link

How To Make Dynamic Link On Email in ASP.NET Core

我想问一下。 我使用 asp.net 核心 2.0 构建了一个简单的电子邮件发件人,我想发送一封带有 link 的电子邮件以将收件人重定向到我的网页,如电子邮件身份验证,但我不知道如何进行回调URL.

我使用:

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

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

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

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

感谢 FrustatedDeveloper 的回答

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

上面使用string interpolation组合字符串变量