2012-04-17 2 views
2

내 C# ASP.Net 웹 응용 프로그램 내에서 간단한 mailto를하려고합니다.앰퍼샌드 쿼리 문자열에 본문에있는 링크의 간단한 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를 입력하면 작동합니까? 앰퍼샌드에 대한 URL 이스케이프 코드

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

나의 영역 앱에 아래 라인을 사용 -하지만 당신은 &를 사용할 수 있습니까? – payo

+0

그런 일을 시도했지만 그것을 좋아하지 않았다. 내가 한 일은 : url.Replace ("&", "& amp")이지만 디버거를 따라 가면된다. 문자열에서 앰퍼샌드를 변경하지 않았습니다. – broguyman

+1

방금 ​​url.Replace ("&", "&") 또는 url = url.Replace ("&", "&")와 같은 URL에 다시 지정 했습니까? – Xaisoft

답변

4

퍼센트 26있다 : 솔루션 내가 여기에 대한 답으로 선택하는 사람을 결정하지만 힘든 시간을 보내고 있습니다와

UPDATE 내가 사용하는 솔루션입니다 . url에 UrlEncode()를 실행 해보십시오.

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)); 
+0

+1 또한 작동하기 때문에 +1하십시오. 나는 엘리의 대답을 먼저 보았고 효과가 있었다. – broguyman

관련 문제