0

私のコントローラーでは、選択リストを作成しています。

    public string Ajax_GetUnusedDCList(Guid storeId)
    {
        DataRepository.Store thisStore = repo.Where(x => x.id == storeId).SingleOrDefault();
        SelectList list = thisStore.GetStoreUnusedDCList("Store");

        JavaScriptSerializer serializer = new JavaScriptSerializer();
        return serializer.Serialize(list);
    }

次に、jQuery で各項目をステップ実行し、この時点で値を警告します。

$.ajax({
  url: "/Stores/Ajax_GetUnusedDCList",
  type: 'POST',
  data: { storeId: '041F0D0E-5AD3-4817-9604-3FD81F08BA9B' },
  success: function (data) {
    $(data).each(function (index, val) {
      alert(val.Text);
    });
  }
});

ただし、次のようなエラーが発生します。

Microsoft JScript ランタイム エラー: 構文エラー、認識できない式: [{"Selected":false,"Text":"9321","Value":null}]

Microsoft JScript ランタイム エラー: '長さ' が null またはオブジェクトではありません

Microsoft JScript ランタイム エラー: '未定義' が null またはオブジェクトではありません

Microsoft JScript ランタイム エラー: 'matches' が null またはオブジェクトではありません

私がやりたいことは、SelectList を返し、ドロップダウンに入力することだけです。

4

2 に答える 2

1

シリアル化せずに SelectList を送信できると思います。これにより、関数自体を使用してクライアント側でアクセスできます。なので

return Json(listObj,JsonRequestBehaviour.AllowGet);
于 2013-04-16T05:49:25.770 に答える