私はEntity Frameworkを使用して、学生とコースについてWebApiを使用してUWPアプリケーションを作成しています。私は学生とコースの間に多面的な関係があります。私は、学生とそのコースを組み合わせたアクションをデータベーステーブルからルーティングしようとしました。私は学生と彼らはに在籍しているコースの名前だけの情報をGETしたいASP.NET Web APIが応答コンテンツのシリアル化に失敗しました
ここに私のエラーメッセージが表示されています。
「ObjectContent`1」タイプの応答をシリアル化することができませんでしたコンテンツタイプ 'application/xmlの本体。 charset = utf-8 'となります。
カスタムコントローラファイルのカスタムルートは次のとおりです。
StudentsCoursesController
public class StudentsCoursesController : ApiController
{
private DataContext db = new DataContext();
//GET: api/Students/Courses
[HttpGet]
[Route("api/Students/Courses")]
[ResponseType(typeof(Students[]))]
public IHttpActionResult GetstudentsCourse()
{
var Student = from st in db.Students.Include("Courses")
select new { st.Id, st.FirstName, st.LastName, st.Courses };
return Ok(Student);
}
}
これは、DataContextのコンストラクタです:
のDataContext:
:public DataContext() : base("Database")
{
Configuration.ProxyCreationEnabled = false;
Configuration.LazyLoadingEnabled = false;
Database.SetInitializer(new LibraryDBInitializer());
}
ここでは、私は私のウェブAPIで取得したエラーメッセージです
コードにエラーはありませんが、結果は得られません。 何が間違っている可能性がありますか?私はエラーが私のAPIコード(コントローラ)にあると感じています。
- おかげ
にcontenteの種類を変更します。 https://stackoverflow.com/questions/12641386/failed-to-serialize-the-response-in-web-apiをご覧ください。 – user1378730
メソッドのレスポンスタイプには学生の配列が必要なので、IQueryableを返すことが問題になる可能性があります。最後にtoArrayを追加すると問題が発生する可能性があります。 –
https://stackoverflow.com/questions/12641386/failed-to-serialize-the-response-in-web-api –