3

为什么我会在服务器上运行 Html 控件?如,我为什么要这样做?

<p runat = "server">This is a paragraph.</p>
4

3 回答 3

9

如果您想在代码隐藏中引用它。像这样:

<p id="myParagraph", runat="server"> ...

然后在代码隐藏中:

this.myParagraph.Visible = false;

我不是说你会设置Visible属性,我只是用它作为例子。

现在,按照您现在<p>标记的方式,您将无法对它做任何事情,因为它缺少id.

于 2013-08-06T13:16:28.407 回答
5

您可能希望使用 HTML 控件而不是服务器控件的一个原因是强制呈现的 HTML 属于某个元素。

例如,GridView默认情况下 a 将呈现为 HTML 表格,但您可能希望它呈现为 DIV 以用于无表格布局。

HTML 控件为您的 HTML 输出提供了更大的灵活性;这是人们喜欢 ASP.NET MVC 而不是 ASP.NET WebForms 的原因之一,因为您控制的更多最终结果,而不是 ASP.NET 引擎为您决定某些事情。

显然,权力带来责任,您将失去服务器控制的一些便利。

于 2013-08-06T13:19:01.670 回答
2

这允许您设置值并控制服务器端的所有属性

<p id="p" runat="server">Value<p>

代码背后:

p.Visible = true;
p.text = "NewValue";
p.attributes.add("style", "width:90px");

此链接有更多信息

于 2013-08-06T13:19:52.617 回答