当前位置:  开发笔记 > 编程语言 > 正文

自我关闭Html通用控件?

如何解决《自我关闭Html通用控件?》经验,为你挑选了2个好方法。

我正在编写一些代码来为后面的代码中的head标签添加一个链接标签...即

HtmlGenericControl css = new HtmlGenericControl("link");

css.Attributes["rel"] = "Stylesheet";
css.Attributes["type"] = "text/css";
css.Attributes["href"] = String.Format("/Assets/CSS/{0}", cssFile);

尝试实现类似......


我正在使用HtmlGenericControl来实现这个...我遇到的问题是控件最终呈现为......


我似乎无法找到我缺少的不渲染额外的东西,我认为它应该是对象的属性.

我是否遗漏了某些东西,或者这种控制是不可能的?

谢谢



1> Phil Jenkins..:

我认为你必须从中衍生出来HtmlGenericControl并覆盖该Render方法.

然后你就可以自己写出"/>"(或者你可以使用HtmlTextWriter的SelfClosingTagEnd常量).

编辑:这是一个例子(在VB中)



2> 小智..:

在尝试编写解决方法时,umbraco.library:RegisterStyleSheetFile(string key, string url)我最终得到了与OP相同的问题并找到了以下内容.

根据规范,link标签是一个void元素.它不能有任何内容,但可以自我关闭.W3C验证器未验证为正确的html5.

显然地

HtmlGenericControl css = new HtmlGenericControl("link");

默认情况下呈现为.使用链接标记的特定控件解决了我的问题:

HtmlLink css = new HtmlLink();

它产生的标记被验证为正确的xhtml和html5.

除了链接,System.Web.UI.HtmlControls还包含其他void元素控件的类,例如img,inputmeta.

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有