【发布时间】:2012-06-19 09:05:54
【问题描述】:
这可能是一个新手问题。我最初在 MVVM 和 WPF 中编写了一个原型。客户想要使用 MVC 和 jQuery。没什么大不了。我在VIEWMODEL中写了很多业务逻辑。
如果我使用 knockout.js,是否只是使用 javascript 库和创建新绑定的问题?
任何建议都会有所帮助。
【问题讨论】:
-
您的 ViewModel 应该是没有业务逻辑的哑对象,只有属性和验证注释。业务逻辑应该包含在它自己的层中。
-
@AlfalfaStrange 我想我认为模型是愚蠢的,没有业务长且“只有注释”,而视图模型是视图的粘合剂。
-
实际上,首选的方法与您所做的相反。 ViewModel 仅由 UI 使用,并且应该反映 UI 的数据需求。 UI 和 ViewModel 不应包含业务逻辑。您的业务逻辑层应该包含逻辑。控制器充当将实体数据(模型)传递给 ViewModel 和 UI 的粘合剂。数据访问也是如此,UI、ViewModel 或 BLL 不应包含数据访问代码。您所拥有的与良好设计和可维护性的模式背道而驰。现在很明显,你必须改变并且不能轻易改变
-
@kenny 不,模特不应该是哑巴。它被认为是一种反模式:martinfowler.com/bliki/AnemicDomainModel.html
-
@Axwack,也请阅读FAQ如何接受stackoverflow中的问题meta.stackexchange.com/q/5234/187724
标签: asp.net-mvc mvvm knockout.js