Как вернуть строку json
Всем привет,
Я новичок в WebAPI, и это мой первый раз, когда я создаю его с помощью visual studio с Entity Framework с использованием c#. Когда я компилирую программу, она не выдает мне ошибки. Это позволило мне загрузить результат вместо того, чтобы отображать его в формате json в Internet Explorer.
Мне очень жаль, если мой английский плох или я не могу ясно объяснить свою проблему. я просто хочу увидеть результат в Postman или в Google Chrome.
<pre lang="c#"> using System; using System.Collections.Generic; using System.Data; using System.Data.Entity; using System.Data.Entity.Infrastructure; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; using System.Web.Http.Description; using WebAPIDemo.Models; namespace WebAPIDemo.Controllers { public class EmployeeController : ApiController { private TestWebAPIEntities db = new TestWebAPIEntities(); // GET api/CRUD [ResponseType(typeof(IEnumerable<Employee>))] [Route("api/GetEmployees")] public IQueryable<Employee> GetEmployees() { return db.Employees; } //public IHttpActionResult GetEmployees() //{ // var companies = db.Employees.ToList(); // return Ok(new { results = companies }); //} // GET api/CRUD/5 [ResponseType(typeof(Employee))] [Route("api/GetEmployee")] public IHttpActionResult GetEmployee(long id) { Employee employee = db.Employees.Find(id); if (employee == null) { return NotFound(); } return Ok(employee); } // PUT api/CRUD/5 [Route("api/PutEmployee")] public IHttpActionResult PutEmployee(long id, Employee employee) { if (!ModelState.IsValid) { return BadRequest(ModelState); } if (id != employee.ID) { return BadRequest(); } db.Entry(employee).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!EmployeeExists(id)) { return NotFound(); } else { throw; } } return StatusCode(HttpStatusCode.NoContent); } // POST api/CRUD [Route("api/PostEmployee")] [ResponseType(typeof(Employee))] public IHttpActionResult PostEmployee(Employee employee) { if (!ModelState.IsValid) { return BadRequest(ModelState); } db.Employees.Add(employee); db.SaveChanges(); return CreatedAtRoute("DefaultApi", new { id = employee.ID }, employee); } // DELETE api/CRUD/5 [Route("api/DeleteEmployee")] [ResponseType(typeof(Employee))] public IHttpActionResult DeleteEmployee(long id) { Employee employee = db.Employees.Find(id); if (employee == null) { return NotFound(); } db.Employees.Remove(employee); db.SaveChanges(); return Ok(employee); } protected override void Dispose(bool disposing) { if (disposing) { db.Dispose(); } base.Dispose(disposing); } [Route("api/EmployeeExists")] private bool EmployeeExists(long id) { return db.Employees.Count(e => e.ID == id) > 0; } } }
Что я уже пробовал:
Я попробовал изменить код с
<pre>private TestWebAPIEntities db = new TestWebAPIEntities(); // GET api/CRUD [ResponseType(typeof(IEnumerable<Employee>))] [Route("api/GetEmployees")] public IQueryable<Employee> GetEmployees() { return db.Employees; }
до настоящего времени:
//public IHttpActionResult GetEmployees() //{ // var companies = db.Employees.ToList(); // return Ok(new { results = companies }); //}
Kornfeld Eliyahu Peter
Вы читали его: https://docs.microsoft.com/en-us/aspnet/web-api/overview/getting-started-with-aspnet-web-api/action-results?