3

コントローラーに次のアクションメソッドがあります。

public ActionResult IndexWithJson(int Id, int? page)
{
    int pageSize = 2;
    int pageNumber = (page ?? 1);

    using (var adsRepo = new AdvertisementRepository())
    {
        if (Id > 0)
        {
            return Json(new{
                Data = adsRepo.GetAdvertisementBySubCategoryId(Id).ToPagedList(pageNumber, pageSize)
            }, JsonRequestBehavior.AllowGet);
        }
        else
        {
            return View("404");
        }

    }
}

ブラウザでの結果出力は次のとおりです。 ここに画像の説明を入力 画像でわかるように、"Data" というオブジェクトを使用してデータを (コントローラーにも) まとめています。
jQuery を使用してこれを呼び出すと、次のようになります。

var serviceBase = "/catalog/";

$.ajax({
    url: serviceBase + 'IndexWithJson',
    contentType: 'application/json; charset=utf-8',
    dataType:'json',
    data: { Id: categoryId, page: page },
    success: function (data) {
        alert(data.Title);
    }
});

アラート ボックスに null が表示されます。
ここで何が問題なのですか?
アラート ボックスに 1 つのプロパティ (プロパティの図を参照) を実際に表示するにはどうすればよいですか。
私のdataType属性はjQuery ajax関数で正しいですか? (私はそれがJSONPであるべきだと思います

4

3 に答える 3