2010-07-09 4 views
0

J'ai la chaîne suivante:Malheurs de cordes en C# - ayant un. à côté d'un "

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/>"; 

Quand il ressemble à cette chaîne s'écrit sur ma page, ceci:

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

Quelqu'un peut-il expliquer pourquoi l'identification de la période étant échappé ? Je tâtonner avec la façon d'échapper à cette correctement.

Merci.

+0

question intéressante, mais pourquoi pas seulement changes le? Projet "+". \ "" + @ "Projet – Fosco

+1

C'est pourquoi FxCop gémit lorsque vous utilisez un littéral au lieu d'un Uri. – Will

Répondre

1

Je ne sais pas exactement ce que votre sortie devrait ressembler lik mais String.Format et escaping sont votre ami.

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

Si vous souhaitez utiliser des guillemets dans votre URL, utilisez des guillemets simples pour vos attributs de balise.

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/>"; 

Ou mieux, url-échapper à la citation (%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/>";