複数のコードビハインドwebmethod
機能を持つWebフォームページを、コントローラ付きのMVCビューに変換しようとしています。JSONをMVCコントローラからwebmethodに戻す
私が返すデータは異なります。彼らは適切にJSONをフォーマットしているが、WebMethod属性は次のようにJSONを返す:
{"d":"{\"Success\":true,\"Data\":{\"QuoteId\":340439,\"LoginId\":40,
とコントローラが戻る:JavaScriptで処理するように設定されているよう
"{\"QuoteId\":340444,\"LoginId\":40,
そのはdata.d
でそれをラップではないし、 Success
またはData
オブジェクトはありません。そして、私がwebmethod
と同じように($.parseJSON(data)
)解析しようとすると、それは私に1行目のメッセージの古いエラーを与えます。
私は十分に遊んだとすれば、データが通っている方法で動作させることができると確信していますが、将来私が秘密にする必要のあるページがたくさんあります。コントローラーにwebmethod
のようにフォーマットさせる簡単な方法があります。
なぜ私はデータが異なってフォーマットされているのか分かりますが、同じ方法でデータを返すことができれば、私の人生は楽になります。私はJsonConvert.SerializeObject(obj)
を返そうとしましたが、これは単なる文字列であり、Return Json(obj)
は私が推測しているのは単なる文字列ですが、両方とも同じ、非data.dの方法で返すものです。
これまで返されていたのと同じJSONを返すようにするには、レスポンスを折り返す新しいオブジェクトを作成しないでください。 'publicクラスJsonResponseWrapper {public bool Success {get; set;}パブリックオブジェクトData {get; set;}} 'これらの行に沿った何か。 – mason
@mason私はそれを試みてきましたが、何らかの理由でデータを同じようにフォーマットしていません。私はそれを本質的に "見て"得ることができますが、webmethodがないJSの行の下にエラーを投げます。 –