[英]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.