2011-06-08 59 views
2

,我试图生成图像标记:HtmlGenericControl(“IMG”)在asp.net不产生适当的图像标签

var img = new HtmlGenericControl("img"); 

它似乎产生<img></img>

我怎么会产生一个正常的图像标签与asp.net/C#?

例如

<img/> 
+2

语义上''与''是一样的,那么为什么它很重要? – 2011-06-08 17:41:18

+0

[Self closing Html Generic Control?](http://stackoverflow.com/questions/1708037/self-closing-html-generic-control) – 2011-06-08 17:42:29

+1

@Bala R,你是对的,这是一个类似的问题。我想这个问题是足够具体的留下来。在观察第一个答案时,似乎使用HtmlGenericControl不是创建img标签的最佳方式。 – tester 2011-06-08 17:45:37

回答

6

图像元素有一个专门的html控件。

System.Web.UI.HtmlControls.HtmlImage 

它生成你想要的html。

+0

这似乎是最简单的修复方法。我只是将'HtmlGenericControl(“img”)''的每个实例都改为'HtmlImage()',并且所有事情都按照计划进行。谢谢 – tester 2011-06-08 18:00:03

1

您正在将其创建为通用html控件。尝试使用Image控件:

var img = new Image(); 
+0

注意:这个是'System.Web.UI.WebControls.Image'而不是'System.Drawing.Image'。 – 2011-06-08 17:46:20

+0

我认为他的问题是而不是而不是创建的控件的具体类型。 – 2011-06-08 17:46:31

+0

我确定,但HtmlGenericControl不明白标签是什么,只是创建标准的打开和关闭标签。 – 2011-06-08 23:07:41

1

覆盖渲染方法,并使用HtmlTextWriter.SelfClosingTagEnd创建自关闭标签?