我有一个WCF Service
和一个MVC3
(剃刀)网站。我所有的数据都来自WCF Service
. 我有我的控制器和视图,但是如何使用具有这种结构的模型?
现在,我用 a 从服务中调用我的方法,DataController
然后在控制器中调用它们。
更好的解决方案?
我有一个WCF Service
和一个MVC3
(剃刀)网站。我所有的数据都来自WCF Service
. 我有我的控制器和视图,但是如何使用具有这种结构的模型?
现在,我用 a 从服务中调用我的方法,DataController
然后在控制器中调用它们。
更好的解决方案?
您想从您的模型访问 WCF 服务吗?哎哟...
坚持控制器。控制器与服务交互,模型不。
1.您创建了对您的服务的 Web 引用 - 并且实体是根据服务数据合同生成的。该实体是您的模型。
2.如果您需要通过一些 ASP.NET MVC 特定属性来装饰它 - 您可以创建具有相同属性的其他实体,创建从服务获取数据并将其转换为您的实体并仅提供所需方法的存储库 - 这是很好的做法。
3.另外,如果你做了一些转换并有一些业务规则 - 你可以创建业务逻辑类,调用存储库方法,检查和执行业务规则。但是,如果您只显示来自服务的数据 - 不要创建逻辑业务类。
4.您从控制器调用逻辑/存储库方法并将其传递给视图。View 只负责显示模型,从不调用它的服务!
更好的解决方案 - 创建服务和存储库类。例如,如果您获得了Person
模型,则创建 PersonRepository 类,该类将完成与调用 wcf 服务和获取数据相关的所有工作。PersonService 类将用作业务逻辑容器,当需要来自存储库的一些数据时,它将引用 Repository 类。在这种情况下,您的模型、业务逻辑和 wcf 服务存储库之间会有很大的松散耦合。PersonService 类将用作验证器、业务逻辑容器等