【问题标题】:ASP.NET - Inline vs. Code-BehindASP.NET - 内联与代码隐藏
【发布时间】:2010-11-15 03:27:20
【问题描述】:

我意识到,通过提出这个问题,我本可以开启天启,但我的一位同事在他们的 aspx 页面中使用了大量内联编码,而我更喜欢使用代码隐藏。

这里有对错之分吗?

【问题讨论】:

  • 是的,凯尔西指出了这一点。虽然不太一样,但我正在寻找是否有正确的做事方式,主要是针对我们即将开始的项目。

标签: asp.net inline code-behind


【解决方案1】:

除非您的编码标准另有规定,否则不会。

IMO 代码隐藏有助于分离关注点,所以我更喜欢这样做,但有时只处理一个文件也不错。

【讨论】:

    【解决方案2】:

    代码隐藏是更传统和合乎逻辑的地方。如果它工作,它工作,但我不能忍受在 aspx 中这样做。

    【讨论】:

    • 我知道你的意思,内联我尖叫经典 ASP。使用我拥有的代码隐藏的唯一问题是我不能也继承另一个页面。至少我不这么认为。而根据我的同事的论点,他们可以继承一个页面并使用内联代码来解决这个问题。这场辩论实际上是通过这个问题开始的。
    • 我认为 asp.net MVC 在某种程度上回到了内联。历史会重演。
    【解决方案3】:

    我不久前发布了确切的帖子:

    OnDataBinding vs Inline: pros, cons and overhead

    我更喜欢后面的代码。我通常有一个用于所有数据绑定内容的#region 区域。它允许精通 HTML / CSS 的人员调整 HTML,他们所知道的只是使用哪些基本控件并在控件定义中定义 OnDataBinding 事件。他们可以四处移动并做任何事情,但不知道将数据放入该数据绑定中实际需要什么,因为它可能不像基本的 'Eval("something"); 那样简单。

    【讨论】:

    • 啊,我没看到。对不起,有效的双重职位。
    • 搜索并不总是出现重复,我过去也这样做过;)
    【解决方案4】:

    嗯,有内联代码,然后是内联代码。如果您在 page_load 的顶部有一个脚本块,那很好。但是,如果您在标记中混合了很多蜜蜂刺 (<% %>),那么当这些蜜蜂刺无法像您希望的其他服务器控件一样工作时,您最终会遇到麻烦。

    【讨论】:

      【解决方案5】:

      我个人更喜欢编译错误而不是运行时错误,所以我将所有逻辑都放在代码后面。

      有时,当我只需要在页面上显示一个值时,我会放 ,但即便如此,我还是更喜欢创建一个标签并设置它。

      【讨论】:

        【解决方案6】:

        我想确保我理解这个问题 - 在线,你的意思是 sn-ps 之类的

        <a><% some.asp.net.code %></a>
        

        或者您的意思是每个页面有一个文件和两个文件:

        page.aspx
        page.aspx.cs
        

        ?

        因为我不喜欢我在第一个示例中所谓的“嵌入”代码,但我更喜欢使用

        将代码和标记放在同一个文件中

        【讨论】:

        • 对我来说内联代码是
        • 啊,我明白了。单文件方法的一个胜利是能够在 web.config 中利用 ... - 似乎不适用于单独的代码文件。另外,对于不同的 page.aspx 重用同一个 page.aspx.cs,我真的没有运气。
        • 不能通过inherites="page"来做吗?
        【解决方案7】:

        这两者都没有对错。

        您可以编写一些内联代码,其中一些应该在代码隐藏中编写。不可能是绝对的。取决于你在另一面写它时它的可读性/可维护性。

        编辑:正如所说,为人类编写代码,顺便为编译器编写代码。

        【讨论】:

          【解决方案8】:

          我倾向于使用代码隐藏,因为它是 WPF 的唯一方法,我尝试保持一致并且感觉更自然。但那是主观的。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多