MVC Json获得null值

时间:2014-08-17 10:27:54

标签: asp.net-mvc json entity-framework

出于某种原因,我为Princ_Comments字段返回了null值,但它 包含数据。可能是什么问题?

Json输出:

[{“ID”:“ACL”,“名称”:“A.C.Lyau Company”,“Princ_Comments”:null}]

型号:

    public class PrincComments
    {
    public string ID { get; set; }

    public string Name { get; set; }

    public string Princ_Comments { get; set; }
    }

控制器:

    [HttpGet]
            public JsonResult GetHTML5Json_PrincComments(string id)
            {
                 id = "ACL";                    
                var result = db.Database.SqlQuery<PrincComments>("Select [ID], [Name], [Princ Comments] From View_Principle_Active where ID = '" + id + "'");                

                return Json(result, JsonRequestBehavior.AllowGet);
            }

2 个答案:

答案 0 :(得分:0)

SqlQuery<T>的文档中可以看出,属性与查询的列匹配。

  

创建将返回给定类型元素的原始SQL查询。   类型可以是具有与其名称匹配的属性的任何类型   从查询返回的列,或者可以是简单的原语   类型。该类型不必是实体类型。结果如此   即使对象的类型,上下文也永远不会跟踪查询   return是一个实体类型。

要解决此问题,您可以使用列别名。

Select [ID], [Name], [Princ Comments] as [Princ_Comments]

答案 1 :(得分:0)

我看到你的评论,Yuliam的建议很有效。总是很高兴得到快速回答。这是示例代码吗?我假设代码中的id赋值是临时的,用于测试目的。编写该方法的方法是请求sql注入。

    [HttpGet]
        public JsonResult GetHTML5Json_PrincComments(string id)
        {
             id = "ACL";                    
            var result = db.Database.SqlQuery<PrincComments>("Select [ID], [Name], [Princ Comments] as 'Princ_Comments'  From View_Principle_Active where ID = '" + id + "'");                

            return Json(result, JsonRequestBehavior.AllowGet);
        }