我是新來的JQuery/JSON,我試圖從我的MVC操作方法之一返回到客戶端,並顯示在屏幕上的JSON對象。json對象來自c#asp.net mvc返回undefined
我一直用這個教程作爲參考:http://www.asp.net/ajaxlibrary/jquery_json_data_from_controller.ashx
這裏是我的操作方法:
[HttpPost]
public ActionResult GetStock()
{
IStockService service = new DummyStockService();
return Json(service.GetStock());
}
(GetStock()返回類型股票,其中股票是一個普通的老C#的List有兩個屬性,一個字符串描述和一個十進制價格對象)
而我的客戶端的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個小時)的問題是使用硬編碼URL未正確調用動作方法,只從輸出HTML/Index /,我將其更改爲@Url.Action("GetStock")
並且已經離開。
感謝@Felix提示調試時應該注意什麼。
我沒有看到'項目在任何地方定義。看看'data'的值的結構。 –
我的錯誤,我正在玩這個$ .each循環,現在改回它,同樣的問題。 (更改反映在問題編輯) – Yends
你檢查與提琴手什麼是通過電線或JavaScript調試器像FireBug什麼是你的物品對象的價值? – Jan