3

我正在测试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 填充?

4

1 回答 1

1

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

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

并在您的网络方法中:

[WebMethod, ScriptMethod(UseHttpGet = true)]
public static MyModel GetStuff() {
    return new MyModel {
        Value = "some value"
    };
}
于 2011-01-13T12:02:25.130 回答