2011-06-07 92 views
2

我有一个WCF Service和一个MVC3(剃刀)网站。我所有的数据来自WCF Service。 我有我的控制器和视图,但是,如何使用这种结构的模型?如何在MVC3(剃须刀)模型中使用WCF参考?

现在,我把我从服务与DataController方法,我叫他们在控制器..

更好的解决方案吗?

回答

2

是否想从模型中访问WCF服务? Ouch ...

坚持控制器。控制器与服务交互,模型不需要。

+0

不,不,在模型中,我只有一层访问我的数据,'DataController'和我在控制器中调用方法。但是如果我这样做,我不会有一个模型.. – baaron 2011-06-08 06:45:08

0

更好的解决方案 - 创建服务和存储库类。例如,如果你有Person模型,创建PersonRepository类,它将完成所有与调用wcf服务和获取数据有关的工作。 PersonService类将用作业务逻辑容器,当需要来自存储库的一些数据时,它将引用Repository类。在这种情况下,您的模型,业务逻辑和wcf服务存储库之间会有很大的松散耦合。 PersonService类将用作验证器,业务逻辑容器等

1

1.您创建了对您的服务的Web引用 - 并且实体是根据服务数据合同生成的。这个实体是你的模型。

2.如果你需要通过一些ASP.NET MVC特定属性来修饰它 - 你可以创建具有相同属性的其他实体,创建从服务获取数据并将其转换为实体并仅提供所需方法的存储库 - 这就是良好的做法。 3.另外,如果你做了一些转换并且有一些业务规则 - 你可以创建业务逻辑类,调用存储库方法,检查并执行业务规则。但是如果你只显示服务的数据 - 不要创建逻辑业务类。

4.您可以从控制器调用您的逻辑/存储库方法并将其传递给查看。 查看只为显示模型负责,从不向其呼叫服务!