C#에 익숙한 MVC 및 API 템플릿에 익숙하지 않습니다.컨트롤러의 중첩 된 함수
간단한 컨트롤러로 새로운 WebAPI 프로젝트를 만들 수 있습니다. /api/Clients/1
과 같은 URL 경로는 둥지 컨트롤러를 정렬하는 방법이 있습니까? 또는 다음과 같은 URL 경로를 따라 동일한 컨트롤러에서 함수를 실행하십시오 : /api/Clients/1/Sysinfo/typeOf
?
sysinfo 항목 인 등록 정보를 포함하는 모델 클라이언트가 있습니다./api/Clients/1은 ID가 1 인 개체 클라이언트의 모든 속성을 반환합니다. 예를 들어/api/Clients/1/Sysinfo/RAM과 함께 반환되는 특정 항목 만 원합니다.
@Joachim 로스 코프 은 그 접근 방식을 시도했다. 404/clients/1/works가됩니다./clients/1/sysinfo가 작동하지 않습니다.
다음과 같은 경로를 사용 :
새로운 컨트롤러 SysinfoController을 만든 routes.MapRoute(
name: "Sysinfo",
url: "Clients/{id}/Sysinfo/{type}",
defaults: new { controller = "Sysinfo", type = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
:
public class SysinfoController : ApiController
{
public Sysinfo GetAllSysinfoItems()
{
return new Sysinfo { Id = 1, RAM = "1GB" };
}
public IHttpActionResult GetSysinfoByType(int id)
{
return Ok();
}
}
* 두 URL 유형 모두 처리 하시겠습니까? – James
컨트롤러 및 라우팅에 대한이 링크는 다음과 같이 도움이 될 수 있습니다. http://www.asp.net/mvc/overview/controllers-and-routing – Markus
예. 내가 MVC에 익숙하다고 말했듯이, 그것은 단지 논리적 오류 일뿐입니다. sysinfo 항목 인 속성이 포함 된 모델 클라이언트가 있습니다./api/Clients/1은 ID가 1 인 개체 클라이언트의 모든 속성을 반환합니다. 예를 들어/api/Clients/1/Sysinfo/RAM과 함께 반환되는 특정 항목 만 원합니다. – z7gsr32cod586mic4a5e