【问题标题】:Best way to handle common HTML Controls on ASP.NET在 ASP.NET 上处理常见 HTML 控件的最佳方法
【发布时间】:2010-07-23 11:39:54
【问题描述】:

我想知道,在 ASP.NET 中处理常见 HTML 控件的最佳方式是什么?我的意思是,ASP.NET 服务器控件在代码中产生了太多的废话,所以我宁愿使用通用控件。

但是databind怎么样,如何正确管理那些常见的对象(比如combobox、textbox等等)?

【问题讨论】:

    标签: asp.net html controls


    【解决方案1】:

    不要忘记,您始终可以在 any 控件上设置 runat="server" - 包括标准 html 表单控件,例如 <input><select>,以及其他元素,例如 <div> .真的。

    这意味着您可以毫不费力地重新控制 WebForms 页面中的 html 输出 - 只要您不需要 ASP.NET 通常为您处理的视图状态或任何其他更高级的数据绑定/状态管理。

    也就是说,学习使用 ASP.NET MVC 框架并不是一个坏主意,因为它不仅可以帮助您重新获得对 html 输出的控制权。通常,在 ASP.NET MVC 中创建页面需要更多的工作,因为没有像 gridview、文本框甚至中继器这样的拖放控件。相反,您使用 html 辅助方法和常规 foreach 循环,这意味着您必须输入更多代码。但是,MVC 框架的设计使您无论如何都不必重复太多代码。

    【讨论】:

      【解决方案2】:

      如果您担心 WebForms ASP.NET 引擎生成的 html 标记,我建议您看看 ASP.NET MVC。它的目的是专门为您提供对生成的 html 的控制。 如果您不想开始学习 ASP.NET MVC,ASP.NET 4.0 WebForms 在生成的 HTML 中为您提供了更大的灵活性(例如仅为特定控件启用 ViewState、设置 html id 等)。

      至于数据绑定,同样,如果您深入研究 MVC 并开始从行动的角度思考 -> 结果,您可以获得更多的控制权和灵活性。

      后来的编辑:我忘了提到 Razor,这是微软正在开发的新 ViewEngine。它目前处于测试阶段,仅在 WebMatrix 内部,这是一个非常精简的 ASP.NET 的“入门类型”开发平台。在我看来,MVC 与您可以使用 Razor 编写的非常简洁的代码相结合将成为 Web 开发领域的重要趋势引领者。

      【讨论】:

        【解决方案3】:

        ASP.Net 控件生成所有这些“废话”是有原因的。这样您就可以正确地对这些对象进行数据绑定和管理。当您不需要直接数据绑定或不需要通过服务器端代码操作控件时,使用标准 html 控件很有用。

        在 ASP.Net 中处理常见 HTML 控件的最佳方法不是直接处理它们。通过使用它们来处理数据和功能,您基本上是在绝育 .Net。您不妨回到经典的 ASP。

        【讨论】:

        • 我相信 onanon 的担忧是有根据的,我自己并不满足于 html 标记在某些 asp.net 页面上的显示方式。最大的问题不是我不喜欢它,而是它确实会增加页面的大小,而且它绝不是搜索引擎友好的。 Microsoft 已尝试通过诸如搜索引擎优化工具包之类的扩展来最大程度地减少这些缺点,但这只是修补,并没有解决问题的根源。
        • @scripni - 我完全同意。我真的很喜欢你使用 MVC 的想法。这不是一个理想的解决方案,因为臃肿的应用程序仍然会导致 html 臃肿。不过,这并没有改变 .Net 的运作方式。当我读到它时,他说“我真的很喜欢我的车有多强大,我只是希望它没有发出这么大的噪音。”
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-26
        • 1970-01-01
        • 2011-07-06
        • 2011-09-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多