Stackoverflow是在MVC上构建的,并且使用日期和数字(回答计数,投票等等)做了一堆简单但很好的事情。我假设这完成了几个静态助手类。
我的问题是视图应该调用这些帮助器对象还是控制器应该调用这些辅助对象并将结果嵌入到ViewData中?
控制器填充视图数据
控制器使用模型和视图调用填充视图数据DateHelper
我怀疑1号是正确的方法,但是你可以选择一个模型列表并且在视图中很容易循环,这似乎有些混乱。如果您基于一组模型实例处理并生成一堆友好字符串,并且该模型没有可以附加到特定实例的位置,则最终会向ViewData发送两个不同的数据列表。正确?
您的意见表示赞赏。
答案 0 :(得分:7)
根据您的要求,您将获得不同的答案。我个人喜欢选项#2,因为我希望ViewData是原始数据并选择它在View中的呈现方式。对我来说,在视图中这样做是完全没问题的,因为它是一个观点问题。
但是,我知道我自己团队中的人不同意我,建议控制器返回演示模型,而不仅仅是模型(我也同意这一点),它应该在将模型发送到视图之前处理所有这些转换。在这种情况下的观点应该是超级哑。
在这种情况下,我不认为每个人都有一个绝对正确的选择。我会根据你的经验选择其中一个并坚持下去。
答案 1 :(得分:2)
我想我更愿意在视图中使用帮助器。在我看来,如何呈现日期是一个以视图为中心的事情。控制器只知道视图需要显示它。
答案 2 :(得分:1)
我全都选择2.我认为这是一个格式化问题,在我看来,这是一个值得担心的观点。