将Webforms转换为MVC:在哪里放置显示逻辑?

时间:2015-03-05 17:32:29

标签: c# asp.net asp.net-mvc webforms viewmodel

我是一名初级开发人员,使用相当大的ASP网站,拥有100多个网络表单和100多个用户控件。我们的工作是将项目转换为MVC5。整个MVC概念/模式非常有趣,现在我正在考虑如何根据“最佳实践(无论它可能是什么)”尽可能顺利地进行过渡。

这个网站是一个面向电话的客户门户网站,它是大量数据驱动的。我们通过WCF代理获取所有数据,代理通常返回类型为T的List。对于每个列表,我们创建一个相应的View Model。视图模型填充了数据并发送到视图。到目前为止一切都很好。

然而,在实际显示数据之前,通常会出现某种“显示逻辑”(缺少更好的术语)。例如,假设我们从WCF代理返回一个List。 PhoneLogs具有某些属性,例如:

  • 单价
  • 赛季
  • 客户名称
  • 发票
  • ID

等。

对于属于1的客户的PhoneLog,我们希望运行Linq查询,该查询根据单价(或其他任何内容 - 总结季节价格 - 仅举例说明)。

我应该补充说,某些表单可能会非常复杂,很多事情都会发生:一个表单可能使用6-7种不同类型的列表(可能具有复杂属性,例如List of),请求数据的方法从代理,到某种格式逻辑的方法,然后在GridView中显示它,逻辑当客户点击单选按钮,链接,按钮或其他等等。所有这些东西都在同一个用户控件上。只是阅读代码可能会让人感到困惑。并且以“正确”的方式将所有这些东西转换为MVC是具有挑战性的。

对于像这样的大项目,我真的想按照一些结构或模式工作!我的问题是,我应该把所有显示逻辑放在哪里?我应该把它作为辅助方法直接放在控制器中吗?或者逻辑应该是视图模型的一部分?或其他单独的文件和/或目录?

0 个答案:

没有答案