C# 如何正确获取Json值?

C# 如何正确获取Json值?,c#,javascript,jquery,asp.net-mvc,json,C#,Javascript,Jquery,Asp.net Mvc,Json,我收到一个HttpPost请求,请求发回一个对象值 当对象值为true(s.IsComputer为bool)时,我希望使ComputerLocationdiv出现 目前什么都没有发生 我尝试使用Firebug调试它,并验证请求是否实际发回了对象值:true,但当我检查结果时,值显示为未定义 请检查我做错了什么 脚本: <script type='text/javascript'> $(document).ready(function () { $('#typ

我收到一个
HttpPost
请求,请求发回一个对象

当对象
为true(
s.IsComputer
为bool)时,我希望使
ComputerLocation
div出现

目前什么都没有发生

我尝试使用Firebug调试它,并验证请求是否实际发回了对象
值:true
,但当我检查
结果时,
值显示为未定义

请检查我做错了什么

脚本:

<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>

使用
First
方法获得单个结果,因为您的查询返回一个
IQueryable

然后按如下方式返回结果:

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

与原始样品有什么区别?它还有一个具有
Value
属性的匿名对象作为LINQ查询结果“System.LINQ.IQueryable”不包含“Value”的定义,并且找不到接受“System.LINQ.IQueryable”类型的第一个参数的扩展方法“Value”(是否缺少using指令或程序集引用?)。我尝试只返回Json(new{Value=data});但没有区别,因为您返回的是对象列表,而不是具体的对象。所有返回的对象都将发送到客户端。因此,它将具有具有属性的对象数组Value@Wizeman1986使用。查询的第一个结尾<代码>…选择新的{Value=s.IsComputer}).First()如果检查JSON,您可能会看到它看起来像:[{Value:true}]。[]表示您有一个数组。您正试图通过执行result.value来访问该值,但无法执行此操作,因为数组没有名为value的属性。您需要访问数组中的第一项:result[0]。Value,或者像Selman22说的那样,您应该修改查询,使其不返回集合。您确定传递给
$的对象上没有缺少属性。ajax
?我认为您应该在请求中使用
数据类型:“json”
,以获得一个json结果。。。例如,它发送下拉id(3)并接收回“值”:对于基本检查IsComputer bool的id为true。
var data = (from s in db.ItemTypes.ToList()
                   where s.ItemTypeId == itemTypeId 
                   select new { Value = s.IsComputer }).First();
return Json( new { Value = data.Value });