【问题标题】:How do I use WCF reference with MVC3 (razor) model?如何将 WCF 参考与 MVC3(剃刀)模型一起使用?
【发布时间】:2011-09-10 03:14:46
【问题描述】:

我有一个WCF Service 和一个MVC3(razor) 网站。我所有的数据都来自WCF Service。 我有我的控制器和视图,但是如何使用具有这种结构的模型?

现在,我使用 DataController 从服务中调用我的方法,然后在控制器中调用它们..

更好的解决方案?

【问题讨论】:

    标签: asp.net-mvc wcf asp.net-mvc-3 wcf-client service-reference


    【解决方案1】:

    您想从您的模型访问 WCF 服务吗?哎哟……

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

    【讨论】:

    • 不,不..不在模型中,我只有一个层来访问我的数据,DataController 和我调用控制器中的方法。但如果我这样做,我就没有模特了..
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      2.如果您需要通过一些 ASP.NET MVC 特定属性来装饰它 - 您可以创建具有相同属性的其他实体,创建从服务获取数据并将其转换为您的实体并仅提供所需方法的存储库 - 这很好练习。

      3.另外,如果你做了一些转换并有一些业务规则——你可以创建业务逻辑类,调用存储库方法,检查和执行业务规则。但如果您只显示来自服务的数据 - 不要创建逻辑业务类。

      4.您从控制器调用逻辑/存储库方法并将其传递给视图。 View 只负责显示模型,从不调用它的服务!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-02-23
        • 2011-07-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多