通过js从mvc视图访问wcf

时间:2012-02-29 11:01:06

标签: asp.net-mvc wcf

我正在尝试在实际例子中学习wcf。我跟着scalable wcf solution tutorial,我的服务工作正常,来自我的控制台应用程序的客户端。工作正常。但我想要实现的是从mvc view(razor)页面通过js消耗我的服务。在我的客户端控制台应用程序上,我正在使用

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

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

查看servicestack.net,了解.net中最干净,最好的Web服务实现。没有配置,可以从jQuery轻松调用,默认返回json。 NuGet Mvc 3软件包易于上手。

答案 2 :(得分:0)

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

如果您在MVC网络应用中托管wcf服务,则可以使用Url.Content:

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

然后只需从js调用服务 - 使用此帖子中的javascript作为示例:http://dotnetslackers.com/articles/ajax/JSON-EnabledWCFServicesInASPNET35.aspx