asp.net mvc 核心我如何 return 一个 Json 查询
asp.net mvc core how can I return a Json query
首先我知道如何return Json 查询
public JsonResult streams()
{
using (var conn = new NpgsqlConnection(Connectionstring))
{
conn.Open();
var credentials = conn.Query<Streams>("select id,name from streams").ToList();
ViewData["Message"] = "Your application description page.";
conn.Close();
return Json(credentials);
}
}
上面的代码 returns Json 对我来说来自数据库,但是现在我实际上 returning 来自 SQL 代码的 Json通过将查询更改为此
var credentials = conn.Query<Streams>("select SELECT array_to_json(array_agg(t)) from (select id,name from streams) t").ToList();
新查询工作正常,但是它在控制器中 returning null,因为我现在这样
public JsonResult streams()
{
using (var conn = new NpgsqlConnection(Connectionstring))
{
conn.Open();
var credentials = conn.Query<Streams>("SELECT array_to_json(array_agg(t)) from (select id,name from streams) t").ToList();
ViewData["Message"] = "Your application description page.";
conn.Close();
return Json(credentials);
}
}
我该如何解决这个问题?我的假设是使用 JsonResult 和 returning Json 作为一个动作会把事情搞砸,因为 SQL 查询已经 returning Json.
这是我的直播Class
public class Streams
{
[Key]
public int id { get; set; }
public string name { get; set; }
public int profile_id { get; set; }
public DateTime created_on { get; set; }
public int last_reply { get; set; }
public int comments { get; set; }
public string city { get; set; }
public string state { get; set; }
public float latitudes { get; set; }
public float longitudes { get; set; }
public int votes { get; set; }
}
这是因为您的字符串中有 Json 并且对 this.Json(object)
的调用旨在将其序列化为 Json。
在 MVC 5 中,您可以:
return this.Content(credentials, "application/json");
ContentResult
class 在 MVC Core 中,所以我假设语法保持不变。
首先我知道如何return Json 查询
public JsonResult streams()
{
using (var conn = new NpgsqlConnection(Connectionstring))
{
conn.Open();
var credentials = conn.Query<Streams>("select id,name from streams").ToList();
ViewData["Message"] = "Your application description page.";
conn.Close();
return Json(credentials);
}
}
上面的代码 returns Json 对我来说来自数据库,但是现在我实际上 returning 来自 SQL 代码的 Json通过将查询更改为此
var credentials = conn.Query<Streams>("select SELECT array_to_json(array_agg(t)) from (select id,name from streams) t").ToList();
新查询工作正常,但是它在控制器中 returning null,因为我现在这样
public JsonResult streams()
{
using (var conn = new NpgsqlConnection(Connectionstring))
{
conn.Open();
var credentials = conn.Query<Streams>("SELECT array_to_json(array_agg(t)) from (select id,name from streams) t").ToList();
ViewData["Message"] = "Your application description page.";
conn.Close();
return Json(credentials);
}
}
我该如何解决这个问题?我的假设是使用 JsonResult 和 returning Json 作为一个动作会把事情搞砸,因为 SQL 查询已经 returning Json.
这是我的直播Class
public class Streams
{
[Key]
public int id { get; set; }
public string name { get; set; }
public int profile_id { get; set; }
public DateTime created_on { get; set; }
public int last_reply { get; set; }
public int comments { get; set; }
public string city { get; set; }
public string state { get; set; }
public float latitudes { get; set; }
public float longitudes { get; set; }
public int votes { get; set; }
}
这是因为您的字符串中有 Json 并且对 this.Json(object)
的调用旨在将其序列化为 Json。
在 MVC 5 中,您可以:
return this.Content(credentials, "application/json");
ContentResult
class 在 MVC Core 中,所以我假设语法保持不变。