查询字符串中的&符号弄乱了正文链接的简单mailto

时间:2012-04-17 20:30:43

标签: c# email mailto

我正在尝试在我的C#ASP.Net网络应用程序中进行简单的mailto。

string url = HttpContext.Current.Request.Url.AbsoluteUri;
System.Diagnostics.Process.Start("mailto:?subject=View Rig Map&body=" + url);

但是如果url有一个带&符号的查询字符串(&)分隔名称 - 值对,那么“http:// localhost:51771 / MuseumViewer.aspx?MuseumIDs = 3301& CountryIDs = 1”链接它在“http:// localhost:51771 / MuseumViewer.aspx?MuseumIDs = 3301。”中删除了电子邮件正文。

我真的不想做任何花哨的事情,因为我需要做的就是在电子邮件正文中有链接。谁能帮我这个?如果我把mailto放在客户端那会有用吗?

使用解决方案更新 我很难决定选择谁作为答案,但这是我使用的解决方案:

string url = HttpContext.Current.Request.Url.AbsoluteUri;
string link = Server.UrlEncode(url);
System.Diagnostics.Process.Start("mailto:?subject=View Rig Map&body=" + link);

2 个答案:

答案 0 :(得分:4)

%26是&符号的URL转义码。尝试在网址上运行UrlEncode()。

答案 1 :(得分:1)

将对System.Web的引用添加到项目中。

在您的应用中使用以下行

string url = "http://localhost:51771/MuseumViewer.aspx?MuseumIDs=3301&CountryIDs=1";
System.Diagnostics.Process.Start("mailto:?subject=View Rig Map&body=" + System.Web.HttpUtility.UrlEncodeUnicode(url));