在标记名称中创建带有'-'的自定义元素并使用属性runat =“ server”时,加载页面时会出现服务器标记格式不正确的错误。
这是使用Asp.Net 4.7。当您删除标记中的连字符时,就没有问题;或者,如果您删除了runat =“ server”,就没有问题。
<depth-chart runat="server" ></depth-chart>
我希望它可以按原样运行,但是.NET没有连字符,这是浏览器可以识别自定义元素的要求。我希望能够保留破折号和runat属性,以便可以在.ascx和.ascx.cs上摆弄这个自定义元素。
答案 0 :(得分:0)
我最终通过解决.ascx文件上的解析器解决了这个问题。
在.ascx.cs文件中,您可以使用自己的自定义标记创建一个通用元素,并且解析器不会发出错误消息。
HtmlGenericControl depthChart = new HtmlGenericControl("depth-chart")
我以<asp:Placeholder>
作为父项将此控件添加到前面。