是否可以将自定义元素与 .Net Web 窗体控件一起使用?



创建标记名称中包含"-"的自定义元素并使用属性runat="server"时,加载页面时会出现服务器标记格式不正确的错误。

这是使用 Asp.Net 4.7。删除标记中的连字符时,没有问题,或者删除 runat="server",则没有问题。

<depth-chart runat="server" ></depth-chart>

我希望它按原样运行,但 .NET 没有该连字符,这是浏览器识别自定义元素的要求。我希望能够保留破折号和 runat 属性,以便可以在 .ascx 和 .ascx.cs 上摆弄这个自定义元素。

我最终通过解决 .ascx 文件上的解析器来解决这个问题。

在 .ascx.cs 文件中,您可以使用自己的自定义标记创建一个通用元素,解析器不会抱怨。

HtmlGenericControl depthChart = new HtmlGenericControl("depth-chart")

我将此控件添加到前面,<asp:Placeholder>作为父控件。

最新更新