我正在尝试在实际例子中学习wcf。我跟着scalable wcf solution tutorial,我的服务工作正常,来自我的控制台应用程序的客户端。工作正常。但我想要实现的是从mvc view(razor)页面通过js消耗我的服务。在我的客户端控制台应用程序上,我正在使用
访问代理IService proxy = new ChannelFactory<IService>(Configuration.MyServiceActiveEndpoint).CreateChannel();
List<MyObjectDto> data = proxy.GetMyData();
... 如何从mvc视图页面实现这个创建代理客户端的实际操作(不添加服务引用)。谢谢
答案 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