使用C#在<a>中添加双引号

Man*_*ngh 0 c#

我在c#后面有下面的代码

        if (Session["cmpDictionaryTitle"]!= null)
                {
                    downloadLinks.Text += @"<li><a onclick='pageTracker._trackEvent('dictionary', 'spanish');' target ='_blank' href=" + Session["cmpDictionaryTitle"] + ">" + GetResourceString("c_DictionaryPDFName") + "</a></li>";
                }
Run Code Online (Sandbox Code Playgroud)

我想在下面<a>建立如下链接:

<li><a target ="_blank" href="/spa/Images/Diccionario_tcm25-18044.pdf" onclick="pageTracker._trackEvent('dictionary', 'spanish');">Diccionario de Español-Inglés GRATIS</a></li>
Run Code Online (Sandbox Code Playgroud)

然而,当html页面呈现时,我的c#代码生成低于输出,原因是我无法在我的代码中放置正确的引号.

<li><a );="" spanish="" ,="" dictionary="" onclick="pageTracker._trackEvent(" href="/spa/Images/Diccionario_tcm25-18044.pdf" target="_blank">Diccionario de Español-Inglés GRATIS</a></li>
Run Code Online (Sandbox Code Playgroud)

您能否建议我如何在代码背后实现上述结果.

谢谢和最诚挚的问候

Jef*_*nal 5

要在代码中构建的字符串中使用双引号,可以:

  • 像这样逃避双引号字符:"\"".
  • 像这样转义双引号字符:""""(当@用于创建逐字字符串文字时).

例子:

// These are both rendered as <a target="_blank" />
Response.Write("<a target =\"_blank\" />");
Response.Write(@"<a target =""_blank"" />");
Run Code Online (Sandbox Code Playgroud)

这是使用反斜杠转义双引号的原始代码(我选择了第一种方法并删除了前导@):

if (Session["cmpDictionaryTitle"]!= null) {
    downloadLinks.Text += "<li><a onclick=\"pageTracker._trackEvent('dictionary', 'spanish');\" target =\"_blank\" href=\"" + Session["cmpDictionaryTitle"] + "\">" + GetResourceString("c_DictionaryPDFName") + "</a></li>";
}
Run Code Online (Sandbox Code Playgroud)

最后,我建议阅读Jon Skeet的优秀文章" .NET和C#中的字符串 ".