【问题标题】:Codebehind is adding an undesireable <span> tag to html背后的代码正在向 html 添加不需要的 <span> 标记
【发布时间】:2016-01-15 13:35:15
【问题描述】:

我正在使用代码隐藏文件来生成带有从 SQL 语句中提取的一些数据的 Bootstrap Accordion。

Accordion 并非默认全部关闭,但如果我单击每个标题,它们会按应有的方式关闭和打开。查看生成的源代码,我可以看到代码隐藏添加了一个不受欢迎的 &lt;span&gt; 标签,我认为这可能是问题的一部分。

部分代码隐藏(这是我开始构建 &lt;div&gt; 的地方)

lblGenericFundBuild.Text = "<div class=\"panel-group\" id=\"accordion\">";
foreach (DataRow PortfolioLineUpDetail in PortfolioLineUp.Rows) {
    lblGenericFundBuild.Text += "<div class=\"panel panel-info\">";
  lblGenericFundBuild.Text += "<div class=\"panel-heading\">";
   lblGenericFundBuild.Text += "<h4 class=\"panel-title\">";
   lblGenericFundBuild.Text += "<a data-toggle=\"collapse\" data-parent=\"#accordion\" href=\"#collapse" + idDiv.ToString() + "\">" + PortfolioLineUpDetail.Field<Double>("AllocationPercent").ToString() + "%  -  " + PortfolioLineUpDetail.Field<String>("AssetClassName") + "</a>";
lblGenericFundBuild.Text += "</h4>";
lblGenericFundBuild.Text += "</div>";

生成的源截图。您可以看到带有我的 asp:Content 名称和标签名称的跨度。

我该如何阻止这种情况发生!?

【问题讨论】:

  • 请注意,您真的不应该首先从后面的代码中将所有 HTML 添加为字符串。所有这些代码应该从一开始就在标记中。
  • 在后台必须执行大量逻辑的情况下,您如何建议添加重复的 div 模式?
  • 你使用Repeater

标签: c# html asp.net


【解决方案1】:

服务器控件asp:Label 将始终添加&lt;span&gt; 标记。

如果您不想这样,请使用asp:Literal 控件。

【讨论】:

    【解决方案2】:

    您可以使用PlaceHolder 而不是Label 来创建一个实际上不会将自己的元素添加到页面,但可以在服务器上添加子元素的 ASP 控件。

    【讨论】:

      猜你喜欢
      • 2020-05-08
      • 1970-01-01
      • 2017-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多