Sharepointに互換性がないため、1ページのASP.NET MVC 3 WebアプリケーションをASP.NET 3.5 Webフォームアプリケーションに変換する任務がありました。 Webフォームアプリケーションのjson結果でオブジェクトのプロパティにアクセスできません。誰かが私が間違っていることを教えてもらえますか?また、Jsonデータを返すためにWebフォームを使用する場合は、WCFサービスまたは通常のWebサービスを使用する方がよいでしょうか?誰か私にいくつかの例を教えてもらえますか組み込みのJavascriptシリアライザやJSON.netライブラリを使用する方が良いでしょうか?JSONオブジェクトのクライアント側のプロパティへの直接アクセス
MVC方式 - - ここに私のコードです
public ActionResult LoadPerson()
{
var p = new Person;
p.Name = "Bob";
return Json(new { value = p}, JsonRequestBehavior.AllowGet); //what is the equivalent of this in webforms so I can access the properties directly?
}
MVCのJavaScriptファイル - コードビハインド
var person;
$.ajax({
url: 'Home/LoadPerson',
type: 'GET',
async: false,
contentType: 'application/json;',
dataType: 'json',
success: function (result) {
person = result.value;
}
});
alert(person.Name); //works fine.
Webフォーム -
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string LoadPerson()
{
var p = new Person();
p.Name = "Bob";
var serializer = new JavaScriptSerializer();
return serializer.Serialize(p);
}
WebフォームのJavaScript -
var person;
$.ajax({
url: 'Default.aspx/LoadPerson',
type: 'POST',
async: false,
contentType: 'application/json;',
dataType: 'json',
success: function (result) {
person = result.d;
}
});
alert(person.Name); //undefined. Why?
それはそれでした!本当にありがとう。 'asynx:false'を削除した場合、Personオブジェクトがnullである可能性はありません。私は途中であなたのサイトの巨大なファンです:)) – tempid
私はまた、Webサービスの代わりにWCFルートを行くことをお勧めあなたの投稿を読んだ。それについてどうすればいいですか?ありがとう! – tempid
@ user349308:AJAX呼び出し用のJSONエンドポイントが必要な場合は、今やっていることは良いアプローチです。 WCFの高度な機能や柔軟性が必要ない場合、WCFの複雑さを正当化するのは難しいです。 –