出于某种原因,我为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);
}
答案 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);
}