我在c#
中有以下代码 if (Session["cmpDictionaryTitle"]!= null)
{
downloadLinks.Text += @"<li><a onclick='pageTracker._trackEvent('dictionary', 'spanish');' target ='_blank' href=" + Session["cmpDictionaryTitle"] + ">" + GetResourceString("c_DictionaryPDFName") + "</a></li>";
}
我正在尝试制作以下<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>
然而,当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>
您能否建议我如何在背后的代码中实现上述结果。
谢谢&amp;最诚挚的问候
答案 0 :(得分:5)
要在代码中构建的字符串中使用双引号,请执行以下操作:
@
创建逐字时
string literal)。示例:
// These are both rendered as <a target="_blank" />
Response.Write("<a target =\"_blank\" />");
Response.Write(@"<a target =""_blank"" />");
这是您使用反斜杠转义双引号表示所有属性的原始代码(我选择了第一种方法并删除了前导@
):
if (Session["cmpDictionaryTitle"]!= null) {
downloadLinks.Text += "<li><a onclick=\"pageTracker._trackEvent('dictionary', 'spanish');\" target =\"_blank\" href=\"" + Session["cmpDictionaryTitle"] + "\">" + GetResourceString("c_DictionaryPDFName") + "</a></li>";
}
最后,我建议阅读Jon Skeet的优秀文章“Strings in .NET and C#。”
答案 1 :(得分:1)
<a
onclick="pageTracker._trackEvent('dictionary', 'spanish');"
target ="_blank"
href="<%= Server.HtmlEncode((string)Session["cmpDictionaryTitle"]) %>">
<%= Server.HtmlEncode(GetResourceString("c_DictionaryPDFName")) %>
</a>
更新:
您还可以使用XElement构建代码:
var tag = new XElement("li",
new XElement("a",
new XAttribute("onclick", "pageTracker._trackEvent('dictionary', 'spanish');"),
new XAttribute("target", "_blank"),
new XAttribute("href", Session["cmpDictionaryTitle"]),
new XText(GetResourceString("c_DictionaryPDFName"))
)
);
downloadLinks.Text += tag.ToString();
答案 2 :(得分:1)
我使用以下代码解决了上述问题:
downloadLinks.Text = string.Format("<li> <a target=\"_blank\" href=\"{0}\" onclick=\"pageTracker._trackEvent('dictionary','spanish');\">{1}</a> </li>",Session["cmpPDFLink"],GetResourceString("c_DictionaryPDFName"));
干杯!
答案 3 :(得分:0)
您的第一个示例是使用单引号作为属性引号,并在值本身内,因此只需将其中一个更改为使用双引号,例如:
<a onclick="pageTracker._trackEvent('dictionary', 'spanish');" ...