나는 AttributeRouting을 사용하여 정의 된 커스텀 라우트들을 가지고있다./api/GetBatchItems에서 API 함수 중 하나에 액세스하려고하는 컨트롤러에 함수가 있습니다. 다른 컨트롤러에서 attributerouting을 사용하여 커스텀 라우트를 소비하는 방법은 무엇입니까?
[RouteArea("api")]
public sealed class APIController : ApiController{
[GET("GetBatches")]
public IEnumerable<PRAT.Models.EF.EFBatchItem> GetBatches() { ... }
}
, 나는 결과를 얻기 위해 노력하고 있어요 :
GetBatchItems 유사한 컨트롤러 APIController의 함수이다. 이런 식으로하면 모든 항목을 직접 찾아 볼 수 있지만 이미 정의 된 경로를 사용할 수 있기를 원한다면 그렇게 할 수있는 방법이 있습니까? 나는 누군가가 HttpAttributeRoutingConfiguration
라고 언급하는 것을 보았지만 그 수업을 어디에서나 찾을 수는 없었다. 나는
var config = new HttpConfiguration();
config.Routes.MapHttpRoute("default", "api/{controller}/{id}", null);
var server = new HttpServer(config);
var client = new HttpClient(server);
string url = Request.Url.GetLeftPart(UriPartial.Authority) + "/api/APIController/GetBatches";
var result = client.GetAsync(url).Result;
var content = result.Content;
var model = content.ReadAsAsync<IEnumerable<PRAT.Models.EF.EFBatchItem>>().Result;
if (model == null) return View();
else return View(model);
당신이 다른 컨트롤러에서 "당신의 문을 설명하는 샘플 코드를 제공시겠습니까를, 내가 노력하고 있어요 결과를 얻으려면? " –
두 번째 코드 샘플은 다른 컨트롤러의 샘플입니다. 나에게 데이터를 가져 오기 위해 HttpClient를 만들고있다. – appsecguy
1. 직접 검색하는 URL은 무엇입니까? http : ///api/GetBatches? 2. 두 컨트롤러가 모두 같은 사이트에 있다면 왜 http를 통해 다른 컨트롤러와 대화를해야합니까? 왜 두 번째 컨트롤러가 첫 번째 컨트롤러의 GetBathces() 메서드를 참조하도록하지 않습니까? –