반응형
WebAPI 컨트롤러에서 작업을 찾을 수 없습니다.
오류가 발생했습니다. 컨트롤러 'Action'에서 요청과 일치하는 작업을 찾을 수 없습니다.
URL은http://localhost:37331/api/action/FindByModule/1
.
제가 사용한 라우팅은
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
컨트롤러:
public class ActionController : ApiController
{
private IActionRepository repository = null;
[HttpGet]
[ActionName("All")]
public IEnumerable<JsonAction> All()
{
return from action in this.repository.Get()
select new JsonAction
{
ID = action.ID,
Text = action.Text.Trim(),
Description = action.Description.Trim(),
};
}
[HttpGet]
[ActionName("FindByModule")]
public IEnumerable<JsonAction> FindByModule(Int64 moduleId)
{
return from action in this.repository.FindByModule(moduleId)
select new JsonAction
{
ID = action.ID,
Text = action.Text.Trim(),
Description = action.Description.Trim(),
};
}
}
매개 변수 이름이 일치하지 않기 때문입니다.경로에서 값 1이 이름이 지정된 매개 변수에 할당됩니다.id
그리고 당신의 작업은 이름이 붙은 매개 변수를 찾는 것입니다.moduleId
.
첫 번째 옵션은 다음과 같이 경로를 변경하는 것입니다.
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{moduleId}",
defaults: new { moduleId = RouteParameter.Optional }
);
두 번째는 URL을 다음과 같이 변경하는 것입니다.
http://localhost:37331/api/action/FindByModule?moduleId=1
매개 변수 이름이 일치합니다.
내 api에 매개 변수가 너무 많아서 오류가 발생했습니다.저는 루트에 대한 문제를 해결했습니다.
[Route("addressverification/{id}/{no}/{day}/{month}/{year}")]
public AdressVerificationResult Get(long? id, long? no ,long? day, long? month, long? year)
{
return new AdressVerificationResult
{
Aciklama = "19........4 kimlik numaralı kişinin 18.......1 adres numarasında 'YerlesimYeri' adres tipi için geçerli bir yurtiçi adres beyanı mevcuttur.",
DurumKod = true
};
}
언급URL : https://stackoverflow.com/questions/14481592/webapi-no-action-was-found-on-the-controller
반응형
'programing' 카테고리의 다른 글
Oracle에서 임시 테이블과 글로벌 임시 테이블의 차이점은 무엇입니까? (0) | 2023.06.11 |
---|---|
JavaScript를 사용한 ASP.NET 포스트백 (0) | 2023.06.11 |
Laravel + Vuex: 개체/인수 분해가 작동하지 않습니다. (0) | 2023.06.11 |
날짜 시간.구문 분석("2012-09-30")T23:00:00.0000000Z")는 항상 DateTimeKind로 변환됩니다.현지의 (0) | 2023.06.11 |
R의 적용 가족은 통사적인 설탕 이상입니까? (0) | 2023.06.11 |