【问题标题】:How powerful is the <script> tag in ASP.NET?ASP.NET 中的 <script> 标签有多强大?
【发布时间】:2010-03-31 22:17:12
【问题描述】:

我是使用 .NET 进行 Web 开发的新手,我目前正在研究一个页面,其中我既有分离的代码隐藏(在我的情况下,是与 ASPX 文件关联的 .CS 文件),也有位于ASPX 文件内的标签如下:

<script runat="server">
//code
</script>

Q1:主要区别是什么(除了组织、可读性和 ETC 等逻辑问题),可以以一种方式完成而不能以另一种方式完成的事情是什么?每种模式最适合什么?

Q2:如果我要开发一个简单的页面,具有数据库连接、库导入、访问控件(ascx)和访问其他文件夹中的图像..我应该选择哪种方法?

【问题讨论】:

  • 由于逻辑问题,我总是使用代码隐藏文件。 (我对你的问题没有很好的答案,所以我选择了评论。)

标签: c# .net asp.net code-behind


【解决方案1】:

您可以在代码隐藏中执行的任何操作,您都可以像您发布的那样在内联脚本中执行。但是无论如何,您应该在大多数情况下使用代码隐藏。有些事情(比如使用指令)在这里会更容易一些,它有助于保持代码的组织性。

【讨论】:

    【解决方案2】:

    Q1:没有。除了您和其他人提到的(分离、可读性)之外,您还可以使用“内联”(页面本身内的代码)编码来完成“代码背后”可以做的所有事情。

    内联编码并不一定意味着它像“意大利面条代码”,其中 UI 和代码混合在一起(如老式 ASP)。您的所有代码都可以存在于 UI/HTML 之外,但仍然是内联的。您可以将所有代码隐藏代码复制/粘贴到您的内联页面中并进行一些调整(接线、命名空间、导入声明等),仅此而已。

    其他 cmets 恰到好处:便携性和快速修复/修改。 根据您的用例,您可能不希望某些代码部分公开(专有),但可供使用。这对于网络开发专业人士来说很常见。内联代码允许您的客户以任何他们想要的方式快速/轻松地自定义功能,并且可以随时使用您的一些(专有)库(dll),而不必成为代码专家(如果他们是,他们不会一开始就雇用了你)。

    因此,实际上,这就像向客户端发送一个“html”文件,其中包含有关如何更改内容(不破坏内容)的说明......而不是发送源代码文件以及 html (aspx) 页面和希望您的客户知道如何处理他们....

    Q2:虽然任何一种样式(内联或代码隐藏)都可以,但实际上是在“层”中查看您的应用程序。通常,它将是:UI、业务逻辑和数据层。以这种方式思考问题会为您节省大量时间。

    实际例子:

    • 如果您的 Web 应用程序的多个页面必须公开/访问数据,那么拥有数据层是最好的方法。实际上,即使您目前需要 1 页,也可能永远不会保持这种状态,因此请将其视为最佳做法。
    • 如果您的网络应用程序的多个页面会收集用户的输入(即联系我们、注册/注册等),那么您可能需要验证输入。因此,无需逐页执行此操作,通用输入验证库将节省您的时间,并减少您需要的代码量。

    在上述示例中,您已将大量处理“分离”到各自的层中。然后,您的个人 html/aspx 页面可以在“页面级别”以最少的代码快速使用“代码库”(数据和输入验证)。那么在“页面级别”使用内联样式或代码隐藏样式的决定就没有多大关系了 - 您基本上已经将其“简化”到您当时的用例。

    希望这会有所帮助....

    【讨论】:

      【解决方案3】:

      保持分开。将 .aspx 页面用于您的布局,将 .aspx.cs 页面用于任何页面特定代码和偏好,将您的数据访问/业务逻辑拉到它们自己的层中,以便以后更简单的维护/重用。


      这里有一点警告 - ASP.net MVC 在它的视图中使用内联脚本,我真的想到了这个想法 - 它可以使简单的东西保持简单,但 MVC 中使用的架构确保您的业务代码保持独立来自您的演示文稿代码。

      【讨论】:

        【解决方案4】:

        我并不是说您应该破解实时代码...但是将“代码背后”作为内联脚本的一点灵活性是您可以在无需重建/发布网站的情况下进行更改.

        就我个人而言,我从不这样做,但我听说过有人这样做是为了紧急修复。

        【讨论】:

        • 我在没有源代码的已编译 1.1 站点上完成了它(例如在家工作或下班后),并且有些东西被冲洗掉了。这并不总是一种选择,这取决于它是什么类型的问题。通常这是我放一个临时补丁,然后在第二天将它发送给项目实际属于的任何人,以使其永久集成到背后的代码中。
        【解决方案5】:

        脚本标签和后面的代码没有区别。选项背后的代码实际上来自使用脚本标记或“经典 ASP”中的 &lt;% %&gt;。许多开发人员不喜欢服务器端代码与 UI 代码并排放置的事实,因为这会使文件看起来很乱,而且对于 HTML 人员(网页设计师或任何您想要打电话给他们)与开发人员同时在同一页面上开发。

        大多数人喜欢使用代码隐藏选项(它实际上被认为是标准的做事方式),因为它使 UI 和代码分开。这是我喜欢的,但你真的可以使用任何一个。

        【讨论】:

          【解决方案6】:
          1. 您可以使用所有相同的东西
          2. 除非您有令人信服的理由不这样做,否则请始终尝试将代码分开

          有趣的是,我今天才在前面的代码中使用了&lt;script runat="server"&gt;!我这样做是因为您不需要构建整个 Web 应用程序来部署需要隐藏代码的修复程序。是的 - 这是一个错误修复;)

          【讨论】:

            猜你喜欢
            • 2017-09-23
            • 2012-08-24
            • 1970-01-01
            • 2014-01-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-09-02
            相关资源
            最近更新 更多