我已经做了10年的PHP开发人员,试图拓宽视野我正在做一个ASP.NET项目。使用<asp:TextBox>
而不是使用标准<input type=’text’>
?
使用常规<input type=”text”>
而非<asp:TextBox>
似乎更有利。首先,在呈现页面时,<asp:TextBox>
成为标准<input type=text>
。当我使用标准<input type=”text”>
时,我可以通过Request.Form [“Name”]在服务器端代码中轻松检索它们的值。接下来,当我动态添加输入(通过javascript)时,我无法使用TextBox,我需要使用<inputs type=”text”>
。最后渲染正常输入会不会更快?如果我使用<asp:TextBox>
进行编码,则必须将其呈现在我使用<input type=”text”>
的位置,只需要显示它。
换句话说,当标准输入同样有效时,为什么还要使用所有的asp控件?如果不是更好......
答案 0 :(得分:16)
使用过度使用标准
<input type=’text’>
有什么好处?
runat="server"
访问代码隐藏中的任何HTML元素比较摘要
接下来,当我动态添加输入(通过javascript)时,我无法使用TextBox,我需要使用
<inputs type=”text”>
。
无论您使用ASP.NET还是Javascript,动态添加的控件都会变得非常混乱。在需要时(或使用中继器或数据网格)隐藏/显示控件要容易得多。
最后呈现正常输入会不会更快?如果我用代码编写,那么必须渲染,如果我使用它只需要显示。
我认为将ASP.NET与HTML / Javascript应用程序的速度进行比较是不公平的。 ASP.NET旨在呈现ASP.NET控件,并且在ASP.NET中使用HTML控件不会有任何显着的性能提升。
ASP.NET与HTML / Javascript
我觉得你的问题基本上就是“为什么不在钉子上用砖头而不是锤子?” ASP.NET是一个框架,并且在构建时考虑了ASP.NET控件。它的目的是让事情更快,更容易地编程,同时抽象掉通常用Javascript完成的大多数事情(通常是琐碎的,重复的事情)。
答案 1 :(得分:3)
<asp:TextBox>
是一个服务器端控件,当页面呈现为html时最终会转换为<input
。与<asp:TextBox>
类似,您会看到还有其他控件将转换为标准HTML元素。
<asp:TextBox>
是一个服务器端控件,以便您可以使用其ID在代码隐藏中访问它,因此您甚至可以在后面的代码中执行.visible = true或false操作。
这些可能会有所帮助
ASP.NET服务器控件
优点:
缺点:
答案 2 :(得分:0)
您可以将runat="server"
属性添加到ASP.NET WebForms中的任何常规HTML标记中,它将作为HtmlGenericControl
以后面的代码提供给您。您可以通过HtmlGenericControl.InnerText
设置文字,也可以通过HtmlGenericControl.InnerHTML
设置HTML。
使用ASP.NET TextBox的一个优点是,您可以将其呈现为<input type="text" />
或<textarea />
(TextBox.TextMode="multiline"
)
请参阅msdn.microsoft.com/en-us/library/7512d0d0.aspx和msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.textbox.aspx