私はJQuery/JSONを初めて使用しています。私はMVCアクションメソッドの1つからJSONオブジェクトをクライアント側に返して、画面に表示しようとしています。私はリファレンスとして、このチュートリアルを使用しているjson object from c#asp.net mvcは返されません
:ここhttp://www.asp.net/ajaxlibrary/jquery_json_data_from_controller.ashx
は私のアクションメソッドです:
[HttpPost]
public ActionResult GetStock()
{
IStockService service = new DummyStockService();
return Json(service.GetStock());
}
証券は、昔ながらのC#です(GetStock()は、タイプ在庫のリストを返します。 2つのプロパティの文字列の説明と小数価格のオブジェクト)
そして、私のクライアント側のjavascript:。
<script type="text/javascript">
$(document).ready(function() {
$("button").click(function() {
alert('Line before controller action post');
//When I get it working I will remove the hardcorded URL
$.post("http://localhost:3786/Home/Index/GetStock", null, function (data) {
$.each(data, function (i, item) {
var displayString = item.Description + ' : ' + item.Price;
$("<li/>").html(displayString).appendTo("#list");
});
});
});
});
</script>
現在#list要素に表示されているのは、説明のポーズとして価格ペアである "undefined:undefined"の非常に長いリストです。どんなアイデアも高く評価されています。
編集:(他の7時間の答えを投稿することができませんが)問題は、単にHTMLを出力し、が正しくアクションメソッドを呼び出していませんでしたハードコードされたURLを使用していることだった
私は今それを修正しました/インデックス/、私は@Url.Action("GetStock")
に変更していた。
デバッグ時のヒントについては、@Felixにありがとうございます。
を私は '表示されませんitem'はどこにでも定義されます。 'data'の値の構造を見てください。 –
私の間違い、私はその$で回っていました。それぞれのループは、今、同じ問題を戻しました。 (変更は問題の編集に反映されています) – Yends
ワイヤードで送信されているものや、FireBugのようなjavascriptのデバッガがアイテムオブジェクトの値とは何ですか? – Jan