2012-05-29 4 views
0

jsonp (웹 서비스 용) 응답을 변경하려고하지만 write 메서드가 호출되지 않는 문제는 8080/API/직원IHttpModule 필터 쓰기 메서드가 호출되지 않았습니다. asp.net

의 호출 웹 API와 직원

를 호출

public List<Models.Employee> Get() { 

      var employees = from e in _context.Employees 
          select new Models.Employee { 
           Id = e.EmployeeID, 
           FirstName = e.FirstName, 
           LastName = e.LastName 
          }; 


      return employees.ToList(); 

} 

IHTTPModule 방법이라고 컨트롤러 파일,

컨트롤러 방법 : 끝, URL은 로컬 호스트입니다,

public void OnReleaseRequestState(object sender, EventArgs e) 
     { 
      HttpResponse response = HttpContext.Current.Response; 
      if (response.ContentType != JSON_CONTENT_TYPE && response.ContentType != JSON_CONTENT_TYPE1) return; 

      //response.ContentEncoding = 
      // char[] c = { 'd', 's', 'w', 'w' }; 

      response.Filter = new JsonResponseFilter(response.Filter); 
      //response.Cache. 
      // response.ClearContent(); 
      // response.Write(c, 0, 4); 
      // response.Flush(); 
     } 

이제 JsonResponseFilter.write이 문제 먹으 렴 호출되지 않은, 사람이 친절하게 당신은 모든 잘못을하고 그것을

답변

2

를 해결하기 위해 회신. IHttpModule을 사용하지 마십시오. 웹 API에서이를 달성하는 올바른 방법은 사용자 정의 media formatter을 사용하는 것입니다. 당신이 아주 많이 나는 그것으로 찾고 있어요

var config = GlobalConfiguration.Configuration; 
config.Formatters.Insert(0, new JsonpMediaTypeFormatter()); 
+0

덕분에 예를 들어 당신이 Application_Start에 통합 할 수있는 및 웹 메소드 JSONP를 가능하게 할 것이다 이는 JsonpFormatter있다. – MZH

+0

위대한 작품 – MZH

관련 문제