ASP Net Не хочет сериализовывать ответ по Get-запросу
Есть в Model класс Employee
public class Employee
{
public int Id { get; set; }
public string FIO { get; set; }
public DateTime Birthday { get; set; }
public decimal Salary { get; set; }
Есть контекст
class KorusContext : DbContext
{
public KorusContext() : base("KorusConnection")
{
this.Database.Log = s => System.Diagnostics.Debug.WriteLine(s);
}
public DbSet<Employee> Employees { get; set; }
Контроллер (например, Get-часть)
public class EmployeesController : ApiController
{
private KorusContext db = new KorusContext();
[Route("getlist")]
public IEnumerable<Employee> GetEmployees()
{
return db.Employees.ToList();
}
После ввода /getlist выводится следующее:
Что касаемо сериализации, никаких трюков с этим я еще не вытворял. Предполагалось, что он просто должен выводить ответ в xml
Ответы (2 шт):
Автор решения: MelnikovI
→ Ссылка
Попробуйте смапить объекты из бд в DTO и их возвращать, не надо напрямую возвращать Entity.
Автор решения: Johannes Krauser III
→ Ссылка
В MVC возвращаемый тип всегда ActionResult, если вам нужно вернуть именно страницу.
[Route("getlist")]
public ActionResult GetEmployees()
{
return View(db.Employees.ToList());
}
А уже в представлении в model указываете следующее
@model IEnumerable<Employee>