如何在我的视图中链接到我的SendEmailConfirmationTokenAsync?

问题描述:

在客户在我的应用程序中注册为用户后,他们将被发送到登录页面。当他们登录时,我有一条消息告诉他们确认他们的电子邮件。目前,当我点击它,它都到了404.这是我发送电子邮件确认标记方法:如何在我的视图中链接到我的SendEmailConfirmationTokenAsync?

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")  
+0

因此,这404当您单击您的应用程序的页面的链接上发生了什么?它试图导航到哪个网址?你有相应的行动方法,匹配该路线模式? – Shyju

+0

如果您问我是否有该Async的视图, – Skullomania

的方法必须限定为public链接,如果您想要通过一个View或html链接从控制器外部访问它。

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

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

又见documentation on actionlink

+0

我仍然得到了404.这是否与该方法是私人而不是公开的事实有关? – Skullomania

+0

@Skullomania - 绝对的,如果你想打电话,它必须是公开的。直到你指出来,我才看到,对不起。 – Igor

+0

现在它导航到一个空白页面,上面有'userID'和'subject' – Skullomania