문제

일반 ASP.NET MVC 프로젝트 (웹 API가 아님)가 있습니다.여기에서 간단한 API를 만들고 싶어 "API"라는 내 컨트롤러 안에 새 폴더를 만들었습니다.

i 다음 다음과 같은 클래스를 만듭니다.

public class OfficeProductController : ApiController
{
    [HttpPost]
    public JsonResult Create(OfficeProductViewModel model)
    {
        var obj = new OfficeProductViewModel();
        return Json(obj);
    }
}
.

여기에 두 가지 문제가 있습니다.

  • httppost : "모호한 참조"(http.httppostattribute와 mvc.httppostattribute 사이)
  • json ()은 인식되지 않습니다.그것은 단순히 "Symbol JSON"을 해결할 수 없습니다

제대로 기억하면 웹 API 프로젝트에서 작동합니다.

나는 무엇을 잘못하고 있습니까?내가 추가 해야하는 어떤 것?

도움이 되었습니까?

해결책

lars, second question=> jsonResult 대신 OfficeProductViewModel을 반환 할 수 있습니다. JSONRESULT는 WEBAPI에서 사용되지 않는 ActionResult입니다.

JSONResult는 Apicontroller가 System.web.http (Web API STUMP)에있는 System.Web.mvc 네임 스페이스에 있습니다.

첫 번째 질문=> Apicontroller, System.Web.http에서 System.Web.mvc를 참조하지 않는지 확인하십시오.두 네임 스페이스에서 HTTPPost 개체가 있으므로 MVC 버전을 사용하지 않으려고합니다.

JSON을 XML 대신 APICONTRLLERS의 기본 반환 유형으로 설정하려면 WebApiconFig 클래스에서이를 대체 할 수 있습니다.

var appXmlType = config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(t => t.MediaType == "application/xml");
config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(appXmlType);
.

Scott Hanselman은 이것에 대한 멋진 기사를 가지고 있습니다. http://www.hanselman.com/blog/oneaspnetmakingjsonwebapiswithaspnetmvc4betaandaspnetwebapi.aspx

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top