单引号内的ASP.NET Literal

时间:2011-11-16 20:04:55

标签: asp.net visual-studio-2010

我有这段代码

 <li class='<asp:Literal ID="litTest1" runat="server" />'>stuff</li>

在我的计算机上,如果我尝试在我的VS2010中构建应用程序,它会给出“当前上下文中不存在”错误,并且不会在Designer.cs文件中注册该控件。

当我从单引号中删除它并将其放在代码中的某个位置时,它可以完美地工作。此外,如果我在designer.cs中手动编写这些控件,它编译并运行正常。

最奇怪的是,代码在另一台计算机上完全正常,即使它在单引号内也是如此。

这可能是我尚未安装的某些VS2010更新的问题吗?

1 个答案:

答案 0 :(得分:1)

这不是VS2010问题..这是一个语法问题

执行此操作时:

<ul>
    <li class="<asp:Literal ID='litTest1' runat='server' />">stuff</li>
</ul>

您的输出将是一个没有css类的列表项:

  • 东西

您无法从代码隐藏中访问litTest ..它将无法识别该语法中的控件。

您可以做的是将文字保留在页面上:

<asp:Literal ID='litTest1' runat='server' />

然后在后端添加html:

litTest1.Text = "<ul><li class='MyCssClass'>stuff</li></ul>";