在ASP.NET MVC(3.0/Razor)中,您更喜欢视图中的多个视图或条件吗?为什么?

Cha*_*eus 5 c# asp.net-mvc razor

对于我的新网络应用,我正在讨论在视图中使用多个视图或条件.

示例场景将向经过身份验证和未经身份验证的用户显示不同的信息.这可以通过几种方式处理.

  1. 在控制器中,检查IsAuthenticated并根据该视图返回视图
  2. 在视图中,选中IsAuthenticated并根据该信息显示信息块

多视图的优点:视图更小,更简单 - 视图中没有逻辑

单一视图的优点:维护较少的视图文件

显而易见的缺点是专业人员的对立面:更多要维护的文件或更复杂的视图文件.

你喜欢哪个?为什么?我没有在这里概述的任何利弊?

更新:假设每个视图使用布局页面和部分视图来抽象明显重复的代码.

Eva*_*gle 10

这听起来像是讨论避免过早泛化的优点的好地方.作为早产优化的表亲,PG可能同样瘫痪.我之所以这么说,是因为我经常过早地概括,而且往往会劝阻女士们不要跟我调情,嘲笑我搞笑的笑话等等.

请参阅:http://ryanfarley.com/blog/archive/2004/04/30/570.aspx

我的一般经验法则是:

重复两次.
当你要第三次重复自己时,创建一个抽象

我倾向于在我的观点偏见中遵循这个原则:

  1. 我创建了我的第一个视图 - 没有部分.
  2. 我创建了我的第二个视图 - 没有部分.
  3. 我通过将第一个和第二个视图中的代码片段抽象为可重用的部分来创建我的第三个视图.
  4. 我再说一遍,直到山露全部消失.

虽然我对你的问题的答案看起来很明显,但我认为我要说的是,作为开发人员,我们倾向于浪费大量的时间来考虑我们可以从中抽取更多层的不同方式.我们个性化的实例.具有讽刺意味的是,抽象只有在减少重复的必要性的情况下才有价值,重复只有在降低你完成任何事情的可能性时才有害,因此过度抽象的重复愿望与编码时一样有害.一堆ON ERROR RESUME NEXT的.

我怀疑这有帮助.可惜.