Json.net:如何从[WebMethod]返回JObject?

时间:2011-01-13 11:56:12

标签: c# asp.net json json.net webmethod

我正在测试json.net。我想使用它的linq-to-json语法从函数[WebMethod]返回json,但是我收到了错误。

例如,如果我在

背后的代码中使用
[WebMethod, ScriptMethod(UseHttpGet = true)]
public static JObject GetStuff() {
    return new JProperty("string", "value");
}

通过以下javascript调用:

  PageMethods.GetStuff(/* parameters */, function(data) {
      // do stuff with data
  });

我收到错误“无法访问Newtonsoft.Json.Linq.JValue上的子值”。

我应该返回什么来确保我的javascript数据对象被JSON填充?

1 个答案:

答案 0 :(得分:1)

为什么不简单地返回对象并将JSON序列化留给底层基础架构:

public class MyModel
{
    public string Value { get; set; }
}

并在您的网络方法中:

[WebMethod, ScriptMethod(UseHttpGet = true)]
public static MyModel GetStuff() {
    return new MyModel {
        Value = "some value"
    };
}