WebMatrix查询WCF服务的最佳方法是什么?

时间:2011-04-12 13:56:47

标签: wcf json razor webmatrix

我有一个使用Razor视图引擎的ASP.Net项目,该引擎目前直接使用WebMatrix.Data.Database.Open查询各种数据库。

我正在尝试使用WCF迁移所有对Web服务的直接数据库访问,以便获得一致的业务逻辑。在这样做时,我还启用了WCF服务“httpGetEnabled”。这允许我使用Excel宏来查询相同的Web服务。

我的问题是,从Razor / WebMatrix页面查询这些Web服务的最佳方法是什么?

我应该JSON启用我的WCF服务并使用WebMatrix JSON帮助程序吗?或者我应该使用JQuery来获取xml?

我认为前者是最好的方法,但我如何才能启用我的WCF服务?我记得看到一个视频允许我为WCF请求指定一个额外的查询参数来获取JSON,但我再也找不到了。

非常感谢任何正确方向的想法或指示。

亲切的问候。


编辑:

我最近在Stack Overflow上看过这个: Client Side Binding using by Converting the WCF Services to JSON

接下来,我转到WebHttpBehavior周围提到的MSDN文章。我已经将“automaticFormatSelectionEnabled = true”添加到Web.config中的webHttp元素。另外,我添加了以下代码,然后允许我将“format = json”指定为查询参数:

string formatQueryStringValue = WebOperationContext.Current.IncomingRequest.UriTemplateMatch.QueryParameters["format"];
if (!string.IsNullOrEmpty(formatQueryStringValue))
{
    if (formatQueryStringValue.Equals("xml", System.StringComparison.OrdinalIgnoreCase))
    {
        WebOperationContext.Current.OutgoingResponse.Format = WebMessageFormat.Xml;
    }
    else if (formatQueryStringValue.Equals("json", System.StringComparison.OrdinalIgnoreCase))
    {
        WebOperationContext.Current.OutgoingResponse.Format = WebMessageFormat.Json;
    }
}

我现在只需要弄清楚如何使用WebMatrix JSON助手来获得结果......当我得到更多信息时会更新。


编辑2

嗯,我认为没有帮助......现在我可以从webservice获得JSON,但是如果你已经拥有一些JSON数据,那么JSON web帮助似乎只会有所帮助。我只是不确定如何获取JSON数据然后我可以使用JSON Helper将其转换(解码)到类中。

所以我现在的问题是,如何获取JSON数据,然后将其桥接到WebMatrix / Razor以便在WebGrid中使用?

1 个答案:

答案 0 :(得分:0)

从我读到的所有内容中,如果我是正确的,你会想知道在这种情况下最佳做法是什么。

据我所知,最佳做法是不要通过wcf查询您的网站。

为什么? - 因为它们都位于您的服务器上......没有必要再次创建连接以获取数据。 他们应该直接连接到您的webmatrix数据.... 您可以将WCF用于其他应用程序,例如您创建的存储农场动物的.exe。

额外注意:您可以将WCF添加到ASP.NEt项目中,并且两者都可以访问相同的数据库,如果您仍然需要它,这将是最好的情况。