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