【发布时间】:2010-11-15 03:27:20
【问题描述】:
我意识到,通过提出这个问题,我本可以开启天启,但我的一位同事在他们的 aspx 页面中使用了大量内联编码,而我更喜欢使用代码隐藏。
这里有对错之分吗?
【问题讨论】:
-
是的,凯尔西指出了这一点。虽然不太一样,但我正在寻找是否有正确的做事方式,主要是针对我们即将开始的项目。
标签: asp.net inline code-behind
我意识到,通过提出这个问题,我本可以开启天启,但我的一位同事在他们的 aspx 页面中使用了大量内联编码,而我更喜欢使用代码隐藏。
这里有对错之分吗?
【问题讨论】:
标签: asp.net inline code-behind
除非您的编码标准另有规定,否则不会。
IMO 代码隐藏有助于分离关注点,所以我更喜欢这样做,但有时只处理一个文件也不错。
【讨论】:
代码隐藏是更传统和合乎逻辑的地方。如果它工作,它工作,但我不能忍受在 aspx 中这样做。
【讨论】:
我不久前发布了确切的帖子:
OnDataBinding vs Inline: pros, cons and overhead
我更喜欢后面的代码。我通常有一个用于所有数据绑定内容的#region 区域。它允许精通 HTML / CSS 的人员调整 HTML,他们所知道的只是使用哪些基本控件并在控件定义中定义 OnDataBinding 事件。他们可以四处移动并做任何事情,但不知道将数据放入该数据绑定中实际需要什么,因为它可能不像基本的 'Eval("something"); 那样简单。
【讨论】:
嗯,有内联代码,然后是内联代码。如果您在 page_load 的顶部有一个脚本块,那很好。但是,如果您在标记中混合了很多蜜蜂刺 (<% %>),那么当这些蜜蜂刺无法像您希望的其他服务器控件一样工作时,您最终会遇到麻烦。
【讨论】:
我个人更喜欢编译错误而不是运行时错误,所以我将所有逻辑都放在代码后面。
有时,当我只需要在页面上显示一个值时,我会放 ,但即便如此,我还是更喜欢创建一个标签并设置它。
【讨论】:
我想确保我理解这个问题 - 在线,你的意思是 sn-ps 之类的
<a><% some.asp.net.code %></a>
或者您的意思是每个页面有一个文件和两个文件:
page.aspx
page.aspx.cs
?
因为我不喜欢我在第一个示例中所谓的“嵌入”代码,但我更喜欢使用
将代码和标记放在同一个文件中【讨论】:
这两者都没有对错。
您可以编写一些内联代码,其中一些应该在代码隐藏中编写。不可能是绝对的。取决于你在另一面写它时它的可读性/可维护性。
编辑:正如所说,为人类编写代码,顺便为编译器编写代码。
【讨论】:
我倾向于使用代码隐藏,因为它是 WPF 的唯一方法,我尝试保持一致并且感觉更自然。但那是主观的。
【讨论】: