所以,我正在学习如何在ASP.Net MVC 5中创建一个Web Api。我被困在一个地方,需要指导。
采取的措施:
ResumesController.cs
public class ResumesController : ApiController
{
private ApplicationDbContext _context;
public ResumesController()
{
_context = new ApplicationDbContext();
}
//GET /api/resumes
public IEnumerable<Resume> GetResumes()
{
var candidateId = User.Identity.GetUserId();
var resumeList = _context
.Resumes.Where(r => r.CandidateId == candidateId)
.OrderByDescending(r => r.datetime);
return resumeList;
}
}
Global.asax中
protected void Application_Start()
{
GlobalConfiguration.Configure(WebApiConfig.Register);
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
Url赞成:
http://localhost:44395/api/resumes
错误讯息:
&#39; ObjectContent`1&#39;类型无法序列化内容类型&#39; application / xml的响应正文;字符集= UTF-8&#39;
非Api尝试:正常工作
public ActionResult ResumeCenter()
{
var candidateId = User.Identity.GetUserId();
var resumeList = _context
.Resumes.Where(r => r.CandidateId == candidateId)
.OrderByDescending(r => r.datetime);
return View(resumeList);
}
文件夹和文件结构:
问题1:我正在通过教程学习,但我不明白为什么需要拨打api/resumes
?我不需要打电话给/api/GetResumes
吗?
问题2:为什么我无法看到返回的数据的XML视图?
P:S:API控制器操作中出现了断点。
尝试1:
protected void Application_Start()
{
GlobalConfiguration.Configure(WebApiConfig.Register);
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings
.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
GlobalConfiguration.Configuration.Formatters
.Remove(GlobalConfiguration.Configuration.Formatters.XmlFormatter);
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}