我有一个ASP.NET WebAPI应用程序而不是需要为确认电子邮件创建链接。这是代码:
callbackUrl1 = "http://localhost:2757/index.html" +
"?load=email" +
"&userId=" + user.Id +
"&code=" + code;
await UserManager.SendEmailAsync(
user.Id,
"Confirm your account",
"Please click this link: <a href=\"" + callbackUrl1 + "\">link</a>");
我的代码几乎正常工作,但似乎我需要对进入查询字符串的数据进行编码。
使用MVC,这样做是这样的:
var callbackUrl = Url.Action("ConfirmEmail",
"Account",
new { userId = user.Id, code = code },
protocol: Request.Url.Scheme);
但是我没有使用MVC,当我尝试添加它时,我遇到了许多无关的问题。
有人可以告诉我如何编码(如果这是正确的词)进行链接的数据吗?
答案 0 :(得分:2)
使用System.Uri Fiddle here
对网址进行编码using System;
public class Program
{
public static void Main()
{
var callbackUrl1 = new System.Uri("http://localhost:2757/index.html" +
"?load=email" +
"&userId=" + "12345££&^" +
"&code=" + "myCo de");
var aHref = string.Format("<a href=\'{0}'>link</a>", callbackUrl1.AbsoluteUri);
Console.WriteLine(aHref);
}
}
答案 1 :(得分:0)
使用HttpUtility.UrlEncode方法。请注意,您仍需要对电子邮件HTML的URL进行HTML编码