Asp:Textbox vs input text (一个学习 ASP 的 PHP 开发人员)

2022-08-31 01:04:54

我已经做了10年的PHP开发人员,试图拓宽我的视野,我正在做一个 ASP.NET 项目。使用标准相比有什么好处?<asp:TextBox><input type=’text’>

使用常规的 over 似乎是有利的。首先,当页面呈现时,成为标准。当我使用标准时,我可以通过Request.Form[“Name”]在服务器端代码中轻松检索它们的值。接下来,当我动态添加输入(通过javascript)时,我不能使用TextBox的我需要使用。最后,渲染正常输入不是更快吗?如果我用 编码,则必须在需要显示的地方进行渲染。<input type=”text”><asp:TextBox><asp:TextBox><input type=text><input type=”text”><inputs type=”text”><asp:TextBox><input type=”text”>

换句话说,当标准输入工作得一样好,如果不是更好,为什么要打扰所有的asp控件呢?


答案 1

使用标准相比有什么好处?<input type=’text’>

  • 您可以在代码隐藏页中更轻松地引用文本框
    • 请注意,您可以使用控件内部使用代码隐藏中的任何 HTML 元素runat="server"
  • 您可以访问文本框上比输入 html 元素更多的属性
  • 可以将文本框与其他 ASP.NET 控件(如验证程序)一起使用
  • 与输入相比,您可以使用它们更轻松地执行数据绑定
  • 与使用输入和javascript相比,您可以更轻松,几乎毫不费力地使用文本框附加事件

比较摘要

  • 更快/更轻松的编程
  • 与其他 ASP.NET 控件的兼容性

接下来,当我动态添加输入(通过javascript)时,我不能使用TextBox的我需要使用。<inputs type=”text”>

无论你使用的是 ASP.NET 还是Javascript,动态添加的控件都会变得非常混乱。在需要时隐藏/显示控件(或使用转发器或数据网格)要容易得多。

最后,渲染正常输入不是更快吗?如果我用 编码,则必须在需要显示的地方进行渲染。

我认为将 ASP.NET 的速度与HTML / Javascript应用程序进行比较是不公平的。ASP.NET 旨在呈现 ASP.NET 控件,并且在 ASP.NET 中使用HTML控件不会有任何明显的性能提升。

ASP.NET vs HTML/Javascript

我觉得你的问题基本上相当于“为什么不在钉子上使用砖头,而不是锤子?”ASP.NET 是一个框架,并且在构建时考虑到了 ASP.NET 控制。它的目的是让事情被编程得更快,更容易,同时抽象出大多数事情(通常是琐碎的,重复的),这些事情通常用Javascript完成。


答案 2

<asp:TextBox>是一个服务器端控件,当页面呈现为 html 时,最终会将其转换为。与您将看到其他控件类似,这些控件将转换为标准HTML元素。<input<asp:TextBox>

<asp:TextBox>

是一个服务器端控件,以便您可以使用其 ID 在代码隐藏中访问它,因此您甚至可以在 代码隐藏 中执行 .visible = true 或 false 操作。

这些可能会有所帮助

ASP.NET 服务器控制
优势:

  1. 但是,ASP .NET 服务器控件可以检测目标浏览器的功能并相应地呈现自身。浏览器的兼容性问题没有问题,即您可能由HTML 3.2和HTML 4.0浏览器代码使用的页面。
  2. 较新的控件集,其使用方式与任何 HTMl 控件(如日历控件)相同。(不需要Activex控件来执行此操作,这会带来浏览器兼容性问题)。
  3. 处理将在服务器端完成。在内置功能中检查几个值(使用验证控件),因此无需在与少数浏览器不兼容的脚本语言之间进行选择。
  4. ASP .NET 服务器控件具有与传统 HTML 不同的对象模型,甚至提供了一组可以更改控件的外观和行为的属性和方法。
  5. ASP .NET 服务器控件具有更高级别的抽象。ASP .NET 服务器控件的输出可以是许多 HTML 标记的结果,这些标记组合在一起以生成该控件及其事件。

弊:

  1. 代码的控制是与Web服务器控件一起内置的,因此您对这些控件没有太多的直接控制
  2. 将 ASP 迁移到任何 ASP.NET 应用程序都很困难。它相当于重写您的新应用程序

推荐