Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 来自电子邮件的ASP.NET MVC超链接_C#_Html_Asp.net Mvc - Fatal编程技术网

C# 来自电子邮件的ASP.NET MVC超链接

C# 来自电子邮件的ASP.NET MVC超链接,c#,html,asp.net-mvc,C#,Html,Asp.net Mvc,在我的ASP.NET MVC web应用程序中,我设置了密码恢复功能,所有功能都很好,但是超链接将无法正确显示 它打印出整个url,而不是我想要的文本,例如“here” 这是我的代码问题还是电子邮件问题 string code = await UserManager.GeneratePasswordResetTokenAsync(user.Id); var callbackUrl = Url.Action("ResetPassword", "Account", new { userId =

在我的ASP.NET MVC web应用程序中,我设置了密码恢复功能,所有功能都很好,但是超链接将无法正确显示

它打印出整个url,而不是我想要的文本,例如“here”

这是我的代码问题还是电子邮件问题

 string code = await UserManager.GeneratePasswordResetTokenAsync(user.Id);
 var callbackUrl = Url.Action("ResetPassword", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
 await UserManager.SendEmailAsync(user.Id, "Holiday Tracker Reset Password", "Please reset your password by using the following link. Copy and paste it into the url. <a href=\"" + callbackUrl + "\">here</a>");
 return RedirectToAction("ForgotPasswordConfirmation", "Account");

理想情况下,我希望用户不必将链接粘贴到url栏中,而是能够单击超链接。听起来您的电子邮件是以纯文本而不是HTML格式发送的

您可以通过设置MailMessage对象的
IsBodyHtml
属性来解决此问题。就你而言:

msg.IsBodyHtml = true;

此处记录了这一点:

也许您没有将电子邮件正文设置为HTML而不是纯文本?我们看不到实际创建邮件的代码。我已将发送电子邮件操作添加到问题中。但我不确定在哪里设置为HTML
msg.IsBodyHtml = true;