【问题标题】:accessing wcf from mvc view trough js通过 js 从 mvc 视图访问 wcf
【发布时间】:2012-02-29 11:01:05
【问题描述】:

我正在尝试通过实际示例来学习 wcf。我关注了scalable wcf solution tutorial,我的服务工作正常,来自我的控制台应用程序的客户端。工作正常。但是我想要实现的是从 mvc 视图(剃刀)页面通过 js 使用我的服务。在我的客户端控制台应用程序中,我正在使用

访问代理
IService proxy = new ChannelFactory<IService>(Configuration.MyServiceActiveEndpoint).CreateChannel();
List<MyObjectDto> data = proxy.GetMyData();

... 如何从 mvc 视图页面实际实现这个创建代理客户端(不添加服务引用)。谢谢

【问题讨论】:

    标签: asp.net-mvc wcf


    【解决方案1】:

    你不这样做..你真的不这样做。这完全打破了模型-视图-控制器 (MVC) 的全部要点。控制器应该是访问 WCF 服务并将数据返回给视图的控制器。

    【讨论】:

      【解决方案2】:

      查看 servicestack.net 以了解 .net 中最简洁和最佳的 Web 服务实现。无需配置,可从 jQuery 轻松调用,默认返回 json。轻松开始使用 NuGet Mvc 3 包。

      【讨论】:

      • 当然,谢谢,但现在我想解决这个问题。那么有人吗?
      • 我是否需要在控制器内部创建代理来创建与服务通信的通道?
      【解决方案3】:

      您使用的教程已经使用 enableWebScript 行为注册了一个端点 - 当您访问 http://server/virtualdirectory/X.svc/json url 时,您应该会自动生成一个 js 代理。在您的 mvc 视图中包含该 js 文件。

      如果您在 MVC Web 应用程序中托管 wcf 服务,您可以使用 Url.Content:

          <script src="@Url.Content("~/X.svc/json")" type="text/javascript"></script>
      

      然后只需从 js 调用服务 - 以本文中的 javascript 为例:http://dotnetslackers.com/articles/ajax/JSON-EnabledWCFServicesInASPNET35.aspx

      【讨论】:

      • 请注意,这是对如何从 js 使用 WCF 服务的答案。它不考虑从 MVC Web 应用程序中做这件事是否正确的问题 - ShaneCourtrille's answer 涵盖了这一点。
      猜你喜欢
      • 1970-01-01
      • 2012-02-19
      • 2011-10-05
      • 1970-01-01
      • 2021-09-26
      • 1970-01-01
      • 2017-05-10
      • 2010-11-15
      • 1970-01-01
      相关资源
      最近更新 更多