나는 다음과 같은 JSON을 보내고있다 작동하지 :모델 바인더는 POST를 통해 JSON POST와
는POST http://localhost:52873/news
{"text":"testing","isPublic":true}
내 컨트롤러 :
public class NewsController : Controller
{
// GET: /<controller>/
[HttpGet]
public IActionResult Index()
{
return View();
}
[HttpPost]
public IActionResult Post(CreatePostCommand command)
{
/* ...more code... */
return new HttpStatusCodeResult(200);
}
}
그리고 명령은 다음과 같습니다
public class CreatePostCommand
{
public string Text { get; set; }
public bool IsPublic { get; set; }
}
내 경로 설정은 VS 2014 CTP 4의 MVC 템플릿과 함께 제공되는 기본값입니다.
Getting Started with ASP.NET MVC 6에서 6,app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller}/{action}/{id?}",
defaults: new { controller = "Home", action = "Index" });
routes.MapRoute(
name: "api",
template: "{controller}/{id?}");
});
인용구 :
이 경로 템플릿을 사용하여이 작업 이름은 요청의 HTTP 동사에 매핑됩니다. 예를 들어 GET 요청은 Get이라는 메서드를 호출하고 PUT 요청은 Put이라는 메서드를 호출합니다. {controller} 변수는 여전히 컨트롤러 이름에 매핑됩니다.
이것은 나를 위해 작동하지 않습니다. 404 오류가 발생합니다. 이 새로운 ModelBinder는 무엇이 없습니까? 왜 내 JSON POST 메시지를 바인딩하지 않습니까?
이 JSON의 경우 중요한가 –
아약스 방법에 대한 스크립트를 추가 하시겠습니까? 그래서'text'는'Text'이어야합니까? – DavidG
또한 경로 설정이 무엇입니까? – DavidG