只是一些体系结构问题:我使用ASP.net MVC并完全依赖强类型视图和视图模型类。在ASP.net中查看特定的格式代码MVC
由于演示是查看的工作,这些课程不仅包含某些领域,但也有一些格式化功能,例如,
// The ViewModel contains a List<Comment> which the view.aspx iterates
// through, calling this function in a foreach-loop
// PostingDateFormat and DesiredCulture are fields set by the controller,
// and I don't know if they should be
public string GetCommentDateLine(Comment c)
{
return c.CommentDate.ToString(this.PostingDateFormat, this.DesiredCulture);
}
我只是不知道这是否是正确的,还是我应该移动它在别的地方?这对于多视图使用的功能尤其重要。他们是否应该生活在一个特殊的阶层之外?或者将每个视图模型类复制/粘贴(yikes)?
这也是因为我可能在同一个ViewModel上有多个视图:一个浏览器的普通视图,另一个视图为RSS阅读器。当然,控制器应该只用数据填充视图模型,并且视图本身应该根据目标媒体格式化数据(即RSS源中的日期格式与普通网站上的日期格式不同)。我应该为Normal和RSS分开使用ViewModels吗?或者,控制器是否应该知道我需要一个RSS字段并使用不同的值填充“PostingDateFormat”字段?这似乎是更好的解决方案(不需要为每个视图复制ViewModels),但我不确定是否需要Controller知道View需要哪个DateFormat。
只需添加到这一点:我已经把实际的格式提供和日期格式到web.config文件和访问它通过中央设置级。这样,Html Helper实际上只是格式化它,而不关心实际的格式。 http://www.stum.de/2009/12/28/having-a-nested-configuration-section-in-web-config/ – 2010-01-01 23:22:04