【问题标题】:Return Statement JsonResult inside WcfCall在 WcfCall 中返回语句 JsonResult
【发布时间】:2014-02-23 21:22:15
【问题描述】:

如何在使用 WCF 调用时返回 ActionResult 的 Json?

如果我使用 EF 和 using 块进行 db 调用,则以下内容有效。

但它显示了我注释掉的错误。

public JsonResult GetNames(string name)
{
    WcfWebProxy.Using(delegate(IMyWebService client)
    {
        var names = client.GetAllNames().Select(f => new {Text = f.NewNames});
        return Json(names.ToList(), JsonRequestBehavior.AllowGet);
        //Return Type Is Void
    });
}
//Return Statement Missing

【问题讨论】:

    标签: c# asp.net-mvc json wcf asp.net-mvc-4


    【解决方案1】:

    你可以使用闭包:

    public ActionResult GetNames(string name)
    {
        ActionResult res = null;
    
        WcfWebProxy.Using(client =>
        {
            var names = client.GetAllNames().Select(f => new
            {
                Text = f.NewNames
            });
            res = Json(names.ToList(), JsonRequestBehavior.AllowGet);
        });
    
       return res;
    }
    

    当然,如果 WcfWebProxy.Using 方法是异步的,您应该使用异步控制器,如这篇 MSDN 文章中所述:http://msdn.microsoft.com/en-us/library/ee728598(v=vs.100).aspx

    顺便说一句,如果您正在处理 I/O 密集型操作(例如调用 WCF 服务),那么这绝对是您应该考虑的事情。使用 .NET 4.5 和 async/await 模式,您的代码甚至可能是可读的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-18
      • 2016-08-14
      • 2014-10-02
      • 2013-12-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多