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 に答える