2013-08-30 75 views
0

我想自殺。 我不明白爲什麼當我發送一個QR(其中有2個參數)在一封電子郵件中,我有產生2個不同的環節:二維碼生成不同的鏈接2個參數(img!= href)

隨着<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

哪裏是我的第二個PARAM?

ResetLink:

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 /剃刀。

+0

您的resetLink在其定義中甚至沒有「param2」。您的問題中生成的鏈接中的非鏈接可以由上面的代碼中的resetLink字符串生成。請多加關注。 – ataravati

+0

第二個參數是標記 %26param2 = anexempleToken – user2707729

+0

爲什麼在chl =?之前的URL編碼爲&? Try: ... cht = qr&chs = 300x300&chl = ... –

回答

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前的符號。