您根本无法删除两者中的任何一个,但请听我解释原因,因为我感觉您不熟悉 ASP,因此误解了 theasp:
和runat="server"
语法的含义。
first:runat="server"
一个元素上的这个属性,告诉编译器这实际上是一个服务端控件所以a<button/>
和an不一样<button runat="server"/>
第一个是纯html,而第二个是控件,可以绑定到服务器端。.Net 会给它一个 clientID(不要被你自己给它的 ID 弄错了)。
第二:asp:
这是某些元素上的前缀,它告诉编译器这些是 ASP 控件(由 ASP.net 框架提供的默认控件)。其中包括 Buttons、TextBoxes、DropDownLists ……不要将其中 1 个与 html 元素混淆。
an<asp:Button id="myAspButton" runat="server"/>
与 a 不同<button id="myHtmlButton"/>
第一个是服务器端控件,可以绑定到(查看它的属性),并且该控件作为示例runat="server"
呈现给浏览器。<input type="submit"/>
如果您愿意,您可以更改 asp.net 按钮类的呈现,使其返回完全不同的内容。
而且您也不仅限于使用 asp.net 类。您可以创建自己的控件,并将它们放入自定义创建的库中,您可以给这些控件添加自己的前缀。
如果我创建了这样一个自定义控件,我可以在 web.config 文件中为它注册一个前缀,因此我可以创建一个从原始按钮扩展的自定义按钮(但前面有一个默认标签......
<myc:CustomButton ID="myButton" Text="myButton" Label="myLabel" runat="server"/>
这可以呈现为:
<label>myLabel</label>
<button ID="*******">myButton</button>
星号表示它将从 .net 框架中获得的唯一 ID
如果您想了解有关自定义控件或扩展默认控件的更多信息,这里是创建自定义控件或从 TextBox 控件扩展的分步说明。它还显示了如何为控件添加自定义前缀(在本例中为“cc”)
,您可以在此处找到更多信息