2017-02-23 4 views
1

ASP.NET 핵심 웹 응용 프로그램 (.NET Framework)을 사용하여 프로젝트를 만들었습니다. 내 프로젝트 구조 :WebAPI 컨트롤러 방법을 시도 할 때 404 걸림

Project Structure

내 값 컨트롤러는 MVC 컨트롤러에서 상속됩니다. http://localhost:20798/api/values을 클릭하면 원하는 응답을 얻습니다. Values Controller

ConsumerScore 컨트롤러를 추가했는데 이번에는 ApiController에서 상속 된 WebAPI 컨트롤러를 추가했습니다. 그러나 지금 내가 http://localhost:20798/api/consumerscore을 쳤을 때, 나는 404 응답을 얻고있다. ConsumerScore controller

방법이 오류를 해결하려면 다음 Error Response

ConsumerScore 컨트롤러처럼 보인다?

+0

왜 '기본'방식으로 액세스하려고 할 때 ConsumerScoreController에 대한 특수 경로가 있습니까? – NicoRiff

+0

@NicoRiff 이전에 추가하지 않았지만 나중에 오류가 해결 될 것이라고 생각했습니다. 그러나 운이 없다! – Sameer

+0

코드가 asp.net-mvc5와 asp.net-core를 섞고 있습니다. – Nkosi

답변

1

오류는 "ApiController"를 사용하는 경우 구현시 컨트롤러 만 사용해야합니다.

MVC와 WebAPI가 ASP.NET 코어에 병합 되었기 때문에 실제로 특정 ApiController 클래스가 있습니다. 그러나 MVC의 Controller 클래스는보기 및 모델 바인딩과 같은 웹 API 만 개발할 때 필요하지 않은 여러 기능을 제공합니다. 더 참조하십시오

: 당신은 "MVC"와 "웹 API"의 개념을 혼동처럼 Is ApiController deprecated in .NET CORE?

+1

답변이 100 % 정확하지만 그 링크가 다른 사이트 나 메인 사이트로 이동, 변경, 병합 된 경우 이 유용하지 않을 수도 있습니다. 그냥 사라집니다 ... ** : - (** 그러므로 답을 수정하고 답안에 링크에서 관련 단계를 복사하여 이 사이트의 평생 동안 100 % 답변을 얻으십시오! * *; -) ** 항상 은 자료의 출처로 답변의 맨 아래에있는 링크를 남길 수 있습니다. –

+1

감사합니다. @Paulo 나는 ASP.NET 핵심 프로젝트가 2 가지 선택 사항을 추가하지 말아야한다고 생각합니다. 컨트롤러. – Sameer

0

보인다.

ASP.net MVC는 웹 API가 http 요청에 대해 협상 가능한 방식 (json/xml/...)으로 데이터를 제공하는 동안 웹 페이지를 제공하는 데 사용됩니다.

MVC 경로에 "api/*"를 추가하고 MVC Controller에서 데이터를 제공하는 것이 최선의 방법은 아니므로 유용한 웹 서비스로 바꾸지는 못합니다.

귀하의 방법을 보면 ApiController가 필요 하겠지만 "~/api/*"를 웹 브라우저에 복사하여 HTTP 요청을 생성 할 수없고 fiddler 또는 브라우저의 디버거.

관련 문제