0

我想自杀。我不明白为什么当我在电子邮件中发送 QR(有 2 个参数)时,会生成 2 个不同的链接:

<a> </a>

string body = "<b>QR code: </b><br/>" + "<a href=\"" + resetLink + "\">" + "Click here" + "</a>";

生成:http://site.com/Account/Validate/?param1=xxx%26param2=yyy

没关系。

并且,与<img />

string body = "<b>QR code: </b><br/>" + "<img src='" + resetLink + "' />";

生成:http ://site.com/Account/Validate/?param1=xxx

我的第二个参数在哪里?

重置链接:

string resetLink = "http://chart.apis.google.com/chart?cht=qr&chs=300x300&amp;chl=http://site.com/Account/Validate/?param1=" + model.UserName + "%26param2=" + model.Token;

我使用 ASP .NET Mvc4 / Razor。

4

1 回答 1

0

也许邮箱会跳过最后一个参数,有时很难预测(gmail 会更改 HTML)。

我认为您应该对整个 URL 进行 URL 编码,因为字符?可能是问题的原因。这将是

string resetLink = "http://chart.apis.google.com/chart?cht=qr&chs=300x300&chl=
http%3A%2F%2Fsite.com%2FAccount%2FValidate%2F%3Fparam1%3D" + model.UserName + "%26param%3D" + model.Token

我还替换了 chl 之前的 & 符号,你用它的真实字符编码。

于 2013-10-15T10:46:45.023 回答