【发布时间】:2010-06-24 12:51:57
【问题描述】:
过去两年我一直在使用 ASP.NET (C#)。我学到了很多,但还有很多东西要学:)
我在页眉、导航、页脚等方面使用了 MasterPages、“Web 用户控件”。
我从未真正理解的一件事是使用“Web 用户控件”来处理您的内容和逻辑的做法;
Home.aspx ------ Home.ascx
AboutUs.aspx ----- AboutUs.ascx
Ordering.aspx ---- Ordering.acsx
在过去的几个月里,我一直在处理一些使用这种结构的项目。我知道这实际上是一种常见做法,但我并不真正了解全部好处。
我记得我之前尝试过这种方法,结果在使用像 Gridview 这样的控件时遇到了可怕的视图状态问题......一旦我把所有的逻辑都拿出来放到一个 .aspx 页面中,一切正常。
我现在意识到,也许我需要将 Gridview 添加到 viewstate 集合中......但这只会加剧我理解为什么使用这种方法的困难 - 考虑到 viewstate 问题。
我完全理解“Web 用户控件”相对于页眉、菜单、页脚等内容的优势......涉及重复的任何地方,但我见过的项目具有非常具体的页面/控件 - 在其他单词它不太可能在其他任何地方重用 - aspx 页面只包含一个包含内容和逻辑的控件 (.ascx),它只会在该页面上使用,不会在其他任何地方使用。
忽略“代码重用”,这种方法还有哪些其他好处?
【问题讨论】: