2012-02-07 68 views
1

我正在构建我的第一个mvc3应用程序。我有几个问题是:ASP.NET MVC3第一次问题

1)剃须刀视图引擎让我把代码嵌入到视图中。这不是我们曾经试图逃脱的吗?即保持代码不在aspx中。

2)模型是否需要实现一个接口?

3)模型是否需要有方法?或者只是属性?

感谢

回答

4

很模糊的问题,但我会给你我的5C价值:

  1. 没错,但我们把剃刀意见的代码通常只有生成HTML的控制。 。MVC3中的帮助器方法利用Viewmodels中的数据属性并生成验证等。 如果这么说,完全可以选择多少代码放在视图中。

  2. 的ViewModels应该是蠢(POCO)成为可能,而业务逻辑方法应该是把你的域模型,把好DDD开发人员,你是;)

1
  1. 您在视图中放置的代码应该是渲染代码而已。简单的循环重复,拨打EditorForDisplayFor或像using (Html.BeginForm())的东西。主要的商业逻辑不应该放在视图层。
  2. 不,只是属性。你可以添加非常简单的帮助器方法,但重要的东西是属性,所以即使帮助器的东西也应该作为只读属性来实现。

实际上,第一部分对于aspx引擎和WebForms也是如此。和Php,和经典的ASP,并...

1

1)它可能看起来有点像这样,但真的取决于代码是什么。恕我直言,你应该真的应该避免在视图中的任何逻辑或代码,除了直接与渲染视图有关。尽管如此,Razor在视图中提供了一种可爱的干净编码方式。

2)否 - 任何类都可以成为模型。

3)没有什么可以阻止你在模型上放置方法 - 但实际上它们应该是非常简单的数据传输对象 - 它们只是“携带”数据。所以更多的时候,坚持属性。

1

1)剃须刀视图引擎让我把代码嵌入到视图中。这不是我们曾经试图逃脱的吗?即保持代码不在aspx中。

不,我们曾经试图让逻辑脱离视图。这对视图有更多的控制,但不应该被用作实现逻辑的方法。

2)模型是否需要实现接口?

没有。

3)模型是否需要有方法?或者只是属性?

模型只是类。他们定义你班级的结构。