asp.net-mvc - MVC 中的数字/日期转换助手,在哪里使用它们?

标签 asp.net-mvc

Stackoverflow 建立在 MVC 之上,并使用日期和数字(答案计数、投票等...)做一些简单但不错的事情。我假设这一切都是通过几个静态帮助程序类完成的。

我的问题是 View 应该调用这些辅助对象还是 Controller 应该调用这些辅助对象并将结果嵌入到 ViewData 中?

  1. Controller 填充 View 数据

    • Controller 加载模型/数据
    • Controller 使用 DateHelper 静态方法将日期转换为友好的字符串
    • 提供友好的日期字符串以通过 ViewData 查看
  2. Controller 使用模型和 View 调用 DateHelper 填充 View 数据

    • Controller 加载模型/数据
    • Controller 提供模型通过 ViewData 查看
    • 当 ViewData 绑定(bind)到 HTML 时,它调用 DateHelper 静态方法

我怀疑数字 1 是正确的方法,但它似乎有点困惑,因为您可以获取模型列表,并且这些模型很容易在 View 中循环。如果您基于一组模型实例处理和生成一堆友好字符串,而模型没有地方让这些字符串附加到特定实例,您最终会向 ViewData 发送两个不同的数据列表。对吧?

感谢您的想法。

最佳答案

根据你问的人不同,你会得到不同的答案。我个人喜欢选项 #2,因为我希望 ViewData 是原始数据并选择它在 View 中的呈现方式。对我来说,在 View 中执行此操作非常好,因为这是一个 View 问题。

但是,我知道我自己团队中的一些人不同意我的看法,他们建议 Controller 返回一个表示模型,而不仅仅是一个模型(我也同意这一点)并且它应该在将模型发送到 View 之前处理所有这些转换。这种情况下的 View 应该 super 愚蠢。

我不认为在这种情况下每个人都有一个绝对正确的选择。我会说根据您的经验选择一个或另一个并坚持下去。

关于asp.net-mvc - MVC 中的数字/日期转换助手,在哪里使用它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/263839/

相关文章:

c# - 如何将 Kendo UI Grid 与 ToDataSourceResult()、IQueryable<T>、ViewModel 和 AutoMapper 一起使用?

asp.net-mvc - 从 Asp.net MVC 发送 HTML 电子邮件的最佳方式是什么?

c# - 具有多个 DbContext 的存储库和工作单元模式的最佳实践

javascript - 无法在 MVC 5 应用程序的 api Web API 2 Controller 中访问 Action

asp.net-mvc - Silverlight 4 - MVC 2 ASP.NET 成员(member)集成 "single sign on"

asp.net - 在 Razor View 中渲染 Telerik MVC Grid 时出现问题

c# - Systems.Timers.Timer 在调试中工作,但不在发布中

jquery - 在 asp.net mvc 2 编辑器模板中使用 jquery

c# - ASP.NET MVC 和身份 - 重置密码不起作用

asp.net-mvc - 我应该如何在多项目 mvc 应用程序中使用 ninject?