このスクリプトを実行しようとすると、500 エラーが発生します。小さなWeb APIコントローラーとデフォルトのホームコントローラーを使用して、asp.net mvc4にデモプロジェクトをセットアップしました。ここに私のAPIコントローラーがあります:
namespace MyTrainingApi.Controllers
{
public class CoursesController : ApiController
{
//for demo mock data, would pull from dbContext here.
static List<Course> _courses = InitCourses();
private static List<Course> InitCourses()
{
var ret = new List<Course>();
ret.Add(new Course { id = 0, name = "HTTP Fundamentals" });
ret.Add(new Course { id = 1, name = "HTTP Fundamentals Part 2" });
ret.Add(new Course { id = 2, name = "HTTP Fundamentals Part 3" });
ret.Add(new Course { id = 3, name = "How to bake a cake" });
return ret;
}
//uri: /api/courses/
public IEnumerable<Course> Get()
{
return _courses;
}
//uri: /api/courses/{id}
public Course Get(int id)
{
Course ret = null;
ret = (from c in _courses where c.id == id select c).FirstOrDefault();
if (ret == null)
{
//TODO: return 404
}
return ret;
}
public Course Post(Course newCourse)
{
newCourse.id = _courses.Count();
_courses.Add(newCourse);
//TODO: return 202
return newCourse;
}
}
public class Course
{
public int id { get; set; }
public string name { get; set; }
}
}
これが私のHomeControllerです:
namespace MyTrainingApi.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
}
public ActionResult Course(int id)
{
return View(id);
}
public ActionResult Create()
{
return View();
}
}
}
したがって、私が実験している 3 つのビューがあります。Index はすべてのコースのリスト、Course は id に基づく 1 つのコース、Create は情報を POST バックしてコースを追加することになっています。Create ビューは、私がここで問題を抱えているビューです。これはビューコードです:
エラーメッセージには次のように書かれています:
メディア タイプ「未定義」のコンテンツからタイプ「コース」のオブジェクトを読み取るために使用できる MediaTypeFormatter はありません。