2017-04-20 53 views
0

在客戶在我的應用程序中註冊爲用戶後,他們將被髮送到登錄頁面。當他們登錄時,我有一條消息告訴他們確認他們的電子郵件。目前,當我點擊它,它都到了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

回答

0

的方法必須限定爲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

相關問題