C#中的字符串问题 - 有一个。旁边一个“

时间:2010-07-09 14:57:03

标签: c# escaping

我有以下字符串:

string text = @"<a href=""http://raustdsx0700.real.local:7782/analytics/saw.dll?PortalPages&PortalPath=" + dashboardURL + "&Page=" + reportName + @"&P0=1&P1=eq&P2=Project.""Project Name"" target=""_blank"">" + reportName + "</a><br/><br/>";

当此字符串写入我的页面时,它看起来像这样:

<a href="http://raustdsx0700.real.local:7782/analytics/saw.dll?PortalPages&PortalPath=/shared/Real Estate Reporting_portal/REGIS:  Financial Reporting UAT/&Page=DR - 3: Debt Payment History&P0=1&P1=eq&P2=Project\."Project Name" target="_blank">DR - 3: Debt Payment History</a>

有人可以帮助解释为什么期间ID被转义?我正在摸索如何正确地逃避这一点。

感谢。

3 个答案:

答案 0 :(得分:1)

我不确定你的输出应该是什么样子但是 String.Formatescaping是您的朋友。

string text = String.Format("<a href='http://raustdsx0700.real.local:7782/analytics/saw.dll?PortalPages&PortalPath={0}&Page={1}&P0=1&P1=eq&P2=Project.\"Project Name\"'' target='_blank'>{1}</a><br/><br/>",dashboardURL,reportName); 

答案 1 :(得分:1)

如果您打算在网址中使用引号,请使用单引号作为标记属性。

string text = "<a href='http://raustdsx0700.real.local:7782/analytics/saw.dll?PortalPages&PortalPath=" + dashboardURL + "&Page=" + reportName + "&P0=1&P1=eq&P2=Project.\"Project Name\"' target='_blank'>" + reportName + "</a><br/><br/>";

或者更好的是,url-escape引用(%22):

string text = "<a href='http://raustdsx0700.real.local:7782/analytics/saw.dll?PortalPages&PortalPath=" + dashboardURL + "&Page=" + reportName + "&P0=1&P1=eq&P2=Project.%22Project Name%22' target='_blank'>" + reportName + "</a><br/><br/>";

答案 2 :(得分:1)

你需要 urlencode 你的字符串,请查看:http://msdn.microsoft.com/en-us/library/zttxte6w.aspx