[英]Url.Action returns null
我正在嘗試使用asp.net core 3 構建電子郵件確認鏈接。生成令牌后,使用此代碼生成confirmEmail 鏈接始終返回null。
var token = await _userManager.GenerateEmailConfirmationTokenAsync(user);
var confirmationLink = Url.Action(
"ConfirmEmail",
"Users",
new { userId = user.Id, token }, protocol: Request.Scheme
);
這是一個 .net core 3 web api 項目,沒有 mvc。 在啟動時配置是使用:app.UseRouting()。
我在上面做錯了什么,為什么它總是返回 null。 我需要什么來滿足該方法才能返回正確的預期值?
嘗試使用asp.net core 3 構建電子郵件確認鏈接。生成令牌后,使用此代碼生成confirmEmail 鏈接始終返回null。
在本文檔中,您可以找到:
Generating a URI for an invalid route (a controller/action or page that doesn't
exist) will produce an empty string under endpoint routing instead of producing
an invalid URI.
根據給出的反饋和答案來回答我的問題,可以深入了解我遺漏的內容。 下面的實現解決了我的問題,我能夠生成電子郵件確認鏈接。
下面是實現:
var confirmationLink = Url.Action(nameof(ConfirmEmail), "Users", new { token, email = user.Email }, Request.Scheme);
將“ConfirmEmail”方法傳遞給 nameof() 運算符並設置用戶電子郵件。 不確定整個實現的后台發生了什么,但會將其保存到另一天。
確認電子郵件方法:
[HttpGet]
public async Task<IActionResult> ConfirmEmail(string token, string email)
{
var user = await _userManager.FindByEmailAsync(email);
// More logic....
var result = await _userManager.ConfirmEmailAsync(user, token);
// More logic.... return whether success or failure
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.