我正在构建我的第一个mvc3应用程序。我有几个问题:
1)剃刀视图引擎允许我将代码嵌入到视图中。这不是我们曾经试图逃脱的东西吗?即将代码保留在aspx之外。
2)模型是否需要实现接口?
3)模型需要有方法吗?或者只是属性?
由于
答案 0 :(得分:4)
非常含糊的问题,但我会给你5c值得的:
是的,但我们在Razor视图中放置的代码通常只用于生成Html控件..MVC3中的帮助器方法利用Viewmodels中的数据属性并生成验证等。 如果这样说,那么您希望在视图中添加多少代码是完全可选的。
没有
Viewmodels应尽可能愚蠢(POCO),并且应该将业务逻辑方法放在您的域模型上,作为优秀的DDD开发人员;)
答案 1 :(得分:1)
EditorFor
或DisplayFor
或类似using (Html.BeginForm())
的内容。主要的业务逻辑绝不应放在View层中。实际上,第一部分也适用于aspx引擎和WebForms。和Php,以及经典ASP和......
答案 2 :(得分:1)
1)它可能看起来有点像,但实际上它取决于代码是什么。恕我直言你应该真正避免视图中的任何逻辑或代码,除了与渲染视图直接相关的逻辑或代码。但是对于这个代码,Razor在视图中提供了一种可爱的编码方式。
2)否 - 任何课程都可以成为模特。
3)没有什么可以阻止你在模型上放置方法 - 但实际上它们应该是非常简单的数据传输对象 - 它们只是“携带”数据。因此,往往坚持使用属性。
答案 3 :(得分:1)
1)剃刀视图引擎允许我将代码嵌入到视图中。这不是我们曾经试图逃脱的东西吗?即将代码保留在aspx之外。
不,我们曾经试图让逻辑脱离视野。这样可以对视图进行更多控制,但不应将其用作实现逻辑的方法。
2)模型是否需要实现接口?
不。
3)模型需要有方法吗?或者只是属性?
模型只是类。它们定义了你的类的结构。