ASP.NET MVC3第一次提问

时间:2012-02-07 11:59:24

标签: asp.net-mvc asp.net-mvc-3

我正在构建我的第一个mvc3应用程序。我有几个问题:

1)剃刀视图引擎允许我将代码嵌入到视图中。这不是我们曾经试图逃脱的东西吗?即将代码保留在aspx之外。

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

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

由于

4 个答案:

答案 0 :(得分:4)

非常含糊的问题,但我会给你5c值得的:

  1. 是的,但我们在Razor视图中放置的代码通常只用于生成Html控件..MVC3中的帮助器方法利用Viewmodels中的数据属性并生成验证等。 如果这样说,那么您希望在视图中添加多少代码是完全可选的。

  2. 没有

  3. Viewmodels应尽可能愚蠢(POCO),并且应该将业务逻辑方法放在您的域模型上,作为优秀的DDD开发人员;)

答案 1 :(得分:1)

  1. 您放在视图中的代码应该只是呈现代码。简单的循环重复,调用EditorForDisplayFor或类似using (Html.BeginForm())的内容。主要的业务逻辑绝不应放在View层中。
  2. 没有
  3. 不,只是属性。你可以添加非常简单的辅助方法,但重要的是属性,所以即使帮助程序的东西也应该作为只读属性实现。
  4. 实际上,第一部分也适用于aspx引擎和WebForms。和Php,以及经典ASP和......

答案 2 :(得分:1)

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

2)否 - 任何课程都可以成为模特。

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

答案 3 :(得分:1)

  

1)剃刀视图引擎允许我将代码嵌入到视图中。这不是我们曾经试图逃脱的东西吗?即将代码保留在aspx之外。

不,我们曾经试图让逻辑脱离视野。这样可以对视图进行更多控制,但不应将其用作实现逻辑的方法。

  

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

不。

  

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

模型只是类。它们定义了你的类的结构。