문제

ASHX 또는 핸들러를 사용하면 어떤 이점이 있습니까? 또한 MVC를 사용하는 경우 필요합니까?

프레임 워크가 중요합니까 (2.0+)?

왜 핸들러를 사용하고 싶습니까? 최근 이미지를 검색하는 데 하나를 사용하는 것이 좋습니다. 그러나 이유는 모르겠습니다.

시간 내 주셔서 감사합니다.

편집 - 핸들러가 더 빠르나요?

도움이 되었습니까?

해결책

몇 가지 예 만 :

  1. 동적 이미지 생성: 이미지 데이터를 반환하는 ASHX 핸들러를 작성한 다음 태그에 해당 URL을 사용하여 데이터 구동 이미지를 반환하는 핸들러를 작성할 수 있습니다. 예를 들어 <img alt="user's custom icon" src="Icon.ashx?username=bob"></img>

  2. REST 기반 XML 또는 JSON 데이터를 반환합니다 클라이언트의 Ajax 코드.

  3. 사용자 정의 HTML: ASP.NET 웹 양식 또는 MVC 프레임 워크가 너무 제한적 인 경우 페이지에 대해 완전히 사용자 정의 HTML을 반환합니다.

나는 이것이 1.0 이후로 사용할 수 있다고 생각합니다

다른 팁

비 MVC 프로젝트에서 핸들러의 목적은 HTML 이외의 일부 유형의 인코딩 된 응답을 제공하는 것입니다. 일반적으로 핸들러는 XML (RSS, RESTFUL 등), jQuery 또는 기타 JavaScript의 JSON 또는 파일 바이너리 다운로드와 같은 순수한 데이터를 반환합니다. 나는 "수요 전용"접근 방식에 대한 대형 이진 또는 요구 사항을 게으른로드하는 방법으로 클라이언트에게 탁월한 특수 JavaScript를 반환하기 위해 핸들러를 사용했습니다. 다소 핸들러는 "HTML 이외의 것"을 반환하는 데 사용됩니다.

MVC에서는 핸들러에서 멀어지고 컨트롤러를 사용하여 원하는 데이터를 반환합니다. 따라서 다음과 같은 방법으로 :

mywebsite.com/restapi/content/56223

RESTFULCONTENTCONTROLLER에는 index ()에 대한 메소드가 있으며, 이는 view ()를 반환하지 않고 순수한 XML 또는 JSON을 반환합니다.

public class JSONContentController : Controller
{
  public JsonResult Index(int ContentID)
  {
    // get Content() by ContentID
    //

    // return a JSON version
    return Content().SerializeToJSON();
  }
}

IIS에 액세스 할 수 없지만 CSS, 이미지, JavaScript와 같은 파일에 대한 캐싱을 최적화하기 위해 광범위한 만료 응답 헤더와 같은 것을 변경하려는 환경에서 작업하는 경우 매우 유용합니다.

이미지의 경우 플라이 최적화와 같은 작업을 수행하여 image.jpg.ashx? w = 180 & Quality = 70과 같은 이미지를 요청한 다음 QueryString에서 전달 된 설정을 기반으로 이미지를 전달할 수 있습니다.

ASPX는 IREQUIRESESSIONSTATE를 구현하는 페이지를 상속합니다. 따라서 AJAX를 통해 호출하면 ASP.NET은 추가 처리 전에 세션을 잠겨야합니다.

ASHX 파일의 경우 stanteless입니다. IREQUIRESESSIONSTATE에서 State를 관리하기 위해 상속받지 않는 한.

모든 ajax 호출에 ASHX를 사용하고 순수한 ASP.NET 페이지에 ASPX를 사용하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top