使用ASP.NET面板/多视图与单独页面的准则

Ahe*_*eho 3 asp.net

通常需要创建UI以引导用户完成多步骤过程.人们可以使用两种常见的设计.一种选择是使每个步骤成为单独的页面.另一种选择是使用asp:面板或多视图控件,并将所有代码保存在一个asp.net页面中.

每当我使用单独的页面方法时,我发现页面之间的数据共享是kludgy.

每当我使用多视图方法时,我发现代码隐藏逻辑会失去凝聚力.它同时处理太多项目并且难以遵循.

在决定使用哪种方法时,您使用什么标准?

是否有其他设计模式可以帮助我在现有选项中找到的限制?

ric*_*eym 6

我不喜欢webforms中的跨页回发,并且同意在使用MultiView时,你的标记和代码隐藏很快就会失控.

也许一个合理的折衷方案是MultiView,但每个步骤都封装为一个单独的用户控件.这样你就不必与postback模型作斗争,仍然可以获得合理程度的代码分离.

  • 代码隐藏不必失控.如果您使用的是分部分类,则可以轻松地将不同视图的代码分解为不同的文件. (3认同)
  • 是的,你也可以使用#region块而不是partials来做同样的论点.当然,这取决于个人偏好,但我会考虑使用任何一种方法来组织一个大类作为一种可能的气味. (2认同)