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

本文关键字:链接 简单 正文 符号弄 字符串 查询 乱了 | 更新日期: 2023-09-27 18:31:22

我正在尝试在我的 C# ASP.Net Web 应用程序中做一个简单的邮件。

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?博物馆ID=3301。

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

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

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

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

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

将 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));