[英]Json MVC3 Object value in Javascript
我从控制器发送json列表:
public ActionResult LoadTree()
{
List<ListItem> list = new List<ListItem>() {
new ListItem() { Text = "Keyvan Nayyeri" },
new ListItem() { Text = "Simone Chiaretta" },
new ListItem() { Text = "Scott Guthrie" },
new ListItem() { Text = "Scott Hanselman" },
new ListItem() { Text = "Phil Haack" },
new ListItem() { Text = "Rob Conery" }
};
return new JsonResult { Data = list };
}
尝试使用以下方法在我的视图中获取列表:
var text =
$.ajax({
url: '/CourseCases/LoadTree',
dataType: 'json',
data: { },
cache: false,
type: 'GET',
success: function (data) {
}
});
alert(text);
我刚得到[object object]。 如何获取对象的实际值? 提前致谢。
function $.ajax()
不从服务器返回值 ,因此var text = $.ajax()
将不起作用。 您需要查看成功处理程序
success: function (data) {
// data is the result of your ajax request
}
我强烈建议您阅读jQuery.Ajax的更多内容
success(data,textStatus,jqXHR)如果请求成功,将调用的函数。 该函数传递了三个参数:服务器返回的数据,根据dataType参数设置格式; 描述状态的字符串; 和jqXHR对象(在jQuery 1.4.x中为XMLHttpRequest)。 从jQuery 1.5开始,成功设置可以接受一系列函数。 每个函数将依次调用。 这是一个Ajax事件。
在成功函数中,您必须解析json以获取实际数据,例如
var jsObject = JSON.parse(data);
然后访问每个项目,例如jsObject.List [0] .Text等
这里的简单问题。 在您的控制器中,您实际上是将列表分配给响应数据集合内名为Data
的变量。 仅仅因为您的成功函数带有data
参数,并不意味着您在控制器中设置的Data
值会自动变为data
变量。
由于您的Data
列表位于 data
对象内部 :您需要执行以下操作:
data.Data
在您的成功功能中。 尝试这个:
success: function(data) {
alert(data.Data.length);
}
首先,您必须在JsonRequestBehavior = JsonRequestBehavior.AllowGet
设置JsonRequestBehavior = JsonRequestBehavior.AllowGet
JsonResult
。
public ActionResult LoadTree()
{
List<ListItem> list = new List<ListItem>() {
new ListItem() { Text = "Keyvan Nayyeri" },
new ListItem() { Text = "Simone Chiaretta" },
new ListItem() { Text = "Scott Guthrie" },
new ListItem() { Text = "Scott Hanselman" },
new ListItem() { Text = "Phil Haack" },
new ListItem() { Text = "Rob Conery" }
};
return new JsonResult { Data = list, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
}
<script type="text/javascript">
$.ajax({
url: '/Home/LoadTree',
dataType: 'json',
data: {},
cache: false,
type: 'GET',
success: function (data) {
alert(data.length); // 6
// do whatever with the data
}
});
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.