适用于Silverlight / JavaScript的正确服务

时间:2012-07-18 17:11:42

标签: jquery json wcf silverlight model-view-controller

我们正在开始一个新的大型项目,并打算在Silverlight中使用UI。我们希望以后能够切换到HTML / JQuery而无需重写整个服务端点。

Microsoft服务堆栈中的标准方法是什么?

原谅这个问题的广度。我是Silverlight的新手。

我倾向于倾向于RESTFul JSON,我已经知道如何很好地使用MVC控制器。但是Silverlight似乎想要(需要?)WCF服务。我查看了支持AJAX的WCF服务,但其意图似乎是Webforms / ScriptManager。

请指出正确的方向。最终目标是拥有一个可以支持JavaScript和Silverlight客户端的服务端点。如果没有相对简单的解决方案,那也是一个很好的答案。

谢谢!

1 个答案:

答案 0 :(得分:0)

以下是使用Silverlight调用json ashx服务的方法。

您可以使用WebClient调用json服务并接收流。 然后,您可以使用JsonValue和JsonArray从流中检索数据并将其放入Silverlight模型中。

注意:确保添加System.Json作为参考。

public void CallJson()
{
    var webClient = new WebClient();
    webClient.OpenReadCompleted += ReadCompleted;
    webClient.OpenReadAsync(new Uri("http://thisIsWhereYour.Uru/Goes.ashx"));
}

void ReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
    JsonArray array = (JsonArray)JsonValue.Load(e.Result);
    foreach (var jsonPerson in array)
    {
        var person = new {
            firstName = jsonPerson["FirstName"],
            lastName = jsonPerson["LastName"]
        };
    }
}