I've traced through the my method (below) at run time. Below the code I've included a screenshot of the Debug examination of the Portfolios list just before the return statement. I've expanded a couple of the list entries. As you can see, each Portfolio object contains bona fide data - a numeric Id and a string name.
Yet, here's what comes back to the Chrome browser, or postman, no difference.
[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}]
What's happening to all the data? Thanks for your help!
public class Portfolio
{
public int id ;
public string name ;
}
// GET: api/Portfolio
[HttpGet]
public List<Portfolio> Get()
{
List<Portfolio> Portfolios = new List<Portfolio>();
using (SqlConnection cn = new SqlConnection(conn))
{
SqlCommand cmd = cn.CreateCommand();
cmd.CommandText = sqlSelectPortfolios;
cn.Open();
SqlDataReader rdr = cmd.ExecuteReader();
Portfolio pf;
while (rdr.Read())
{
pf = new Portfolio
{
id = (int)rdr["PortfolioId"],
name = (string)rdr["PortfolioName"]
};
Portfolios.Add(pf);
}
}
return Portfolios;
}
The id and name need to be public and properties. As of 3.0 System.Text.Json.JsonSerializer does not serialize fields.
Add {set;get;}
public class Portfolio
{
public int id {get; set;}
public string name {get; set;}
}
2.
raw json data as follow:
{"Categories":[],"Tags":["mijia","xiaomi"],"Comments":[],"Content":
Add {set;}
public IList<string> Categories { get; set; } = new List<string>();
public IList<string> Tags { get; set; } = new List<string>();
public IList<Comment> Comments { get; set; } = new List<Comment>();