如何在我的视图中创建指向SendEmailConfirmationTokenAsync的链接?

时间:2017-04-20 13:33:50

标签: c# asp.net-mvc razor email-confirmation

客户在我的应用程序中注册为用户后,会将其发送到登录页面。当他们登录时,我有一条消息告诉他们确认他们的电子邮件。目前,当我点击它时,它会转到404.这是我的发送电子邮件确认令牌方法:

private async Task<string> SendEmailConfirmationTokenAsync(string userID, string subject)
{

    string code = await UserManager.GenerateEmailConfirmationTokenAsync(userID);
    var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = userID, code = code }, protocol: Request.Url.Scheme);
    await UserManager.SendEmailAsync(userID, subject, "Please confirm your account by <a href=\"" + callbackUrl + "\">clicking here</a>");
    return callbackUrl;
}

以下是我在视图中的链接

@Html.ActionLink("click here", "SendEmailConfirmationTokenAsync", "Account")    

1 个答案:

答案 0 :(得分:0)

如果您想通过View或html链接从控制器外部访问该方法,则该方法的范围必须为public

您需要将方法/操作参数作为链接的一部分传递。如果没有参数,它将尝试解析一个没有不存在的参数的动作(方法)。

@Html.ActionLink("click here", "SendEmailConfirmationTokenAsync", "Account", new {userID = "123", subject = "Welcome or something like this"}, null)

另请参阅documentation on actionlink