如何正确获取Json值?

时间:2014-02-18 14:39:29

标签: c# javascript jquery asp.net-mvc json

我有一个HttpPost请求发回一个对象Value

我想在对象ComputerLocation为真时显示Value div(s.IsComputer是bool)。

目前没有任何事情发生。

我尝试使用Firebug对其进行调试,并确认请求实际上回发了对象Value:true,但当我检查result.Value时,Value显示为未定义。

请检查我做错了什么?

脚本:

<script type='text/javascript'> 
    $(document).ready(function () {
        $('#typeddl').on('change', function () {         
            $.ajax({
                type: 'POST',
                url: '@Url.Action("GetItemTypeForm")',
                data: { itemTypeId: $('#typeddl').val() },
                success: function (result) {                            
                        $('#ComputerLocation').toggle(result.Value === true);         
                }
            });
        });
        $('#typeddl').trigger('change');
    });

</script>

JSON:

 [HttpPost]
 public JsonResult GetItemTypeForm(int itemTypeId)
        {
            //pseudo code
            var data = from s in db.ItemTypes.ToList()
                       where s.ItemTypeId == itemTypeId 
                       select new { Value = s.IsComputer };

            return Json(data);
        }

1 个答案:

答案 0 :(得分:1)

使用First方法获取单个结果,因为您的查询返回IQueryable<T>

var data = (from s in db.ItemTypes.ToList()
                   where s.ItemTypeId == itemTypeId 
                   select new { Value = s.IsComputer }).First();

然后返回你的结果:

return Json( new { Value = data.Value });