簡體   English   中英

Url.Action 返回 null

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM