繁体   English   中英

WebApi内部服务器错误

[英]WebApi Internal Server Error

我有2个项目,一个前端(AngularJS)和一个后端(C#Web-Api)。 问题是,当前端查询api(例如GET localhost / api / Especialistas?rol = XXXX)时,出现500错误。 这是API的代码:

public IHttpActionResult GetEspecialista(string rol)
{
    Especialista especialista = db.Especialistas.First( e=> e.Rol == rol);
    if (especialista == null)
    {
        return NotFound();
    }
    return Ok(especialista);
}

自从到达return Ok(especialista)以来,API一直在工作。

前端使用此Restangular查询API

Restangular.one("Especialistas?rol=XXXX").get()

网络控制台显示请求200 OK OPTION ,但显示500 Internal Server Error GET

我在WebApiConfig.cs文件中尝试了一个消息处理程序,以检查GET请求是否已到达Api,并且确实已经到达了Api,所以我不知道发生了什么,因为我没有更改任何配置文件。

感谢您提供有关如何解决此问题的任何线索。

如果成功调用了您的操作,但仍然收到500错误,我认为该错误是由especialista对象的序列化(转换为HTTP响应时)引起的。

很有可能,由于某些导航属性会在对象图中创建循环,导致序列化失败。 建议返回简单的对象,而不是实体框架模型。

请尝试以下操作:

var retObj = new { Prop1 = especialista.Prop1, Prop2 = especialista.Prop2 };
return Ok(retObj);

如果上述代码可行,则建议创建应基于数据模型填充的服务模型“镜像”对象。 应该返回这些对象而不是数据模型。

好帮手避免财产赋值的样板代码是Automapper

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM