2017-10-02 3 views
-1

ajax 및 Handler.ashx를 사용하여 폴더에서 파일을 삭제하려고합니다. 나는 링크를 클릭 할 때 removefile() 메서드를 호출하여 handler.ashx의 메서드를 호출하여 파일을 삭제합니다. 하지만 작동하지 않습니다. 아약스에서 성공했을 때 반환되는 결과는 항상 비어 있으며 파일은 삭제되지 않습니다.폴더에서 파일 삭제 - ajax asp.net C#

function removeFile(fileName) 
     { 
      $.ajax({ 
       url: 'Handler.ashx/deleteFile', 
       type: 'POST', 
       data: { 'sFileName': fileName}, 
       contentType: false, 
       processData: false, 
       success: function (result) { 
        debugger; 
        alert(result); 
       }, 
       error: function (xhr, ajaxOptions, thrownError) { 
        alert(xhr.status); 
        alert(xhr.responseText); 
        alert(thrownError); 
       } 
      }); 

     } 

아래는 Handler.ashx의 코드를 보여줍니다 :

public void deleteFile(HttpContext context) { 
     string sFileName = context.Request["sFileName"]; 
     if (File.Exists(context.Server.MapPath("~/Files/" + sFileName))) 
     { 
      File.Delete(context.Server.MapPath("~/Files/" + sFileName)); 
      context.Response.ContentType = "text/plain"; 
      context.Response.Write("File Removed Successfully!"); 
     } 
     else 
     { 
      context.Response.ContentType = "text/plain"; 
      context.Response.Write("File Removed Failed!"); 
     } 
    } 

내가 뭘 잘못 나를 인도 해주십시오 아래

는 코드입니다. 미리 감사드립니다.

답변

1

ashx-handler는 mvc 컨트롤러처럼 호출되지 않습니다. url을 메소드 이름에 매핑하는 메커니즘이 없으므로 deleteFile-method가 전혀 호출되지 않았다고 생각합니다. 중단 점을 설정하여이를 확인할 수 있습니다.

ProcessRequest 메소드를 구현해야합니다. 이 방법에서는 전체 URL을 확인하고 올바른 매개 변수를 사용하여 DeleteFile-method (.net 메소드 이름을 대문자로 시작하십시오)를 호출 할 수 있습니다.

핸들러 사용에 대한 자세한 설명은 여기를 참조하십시오. https://www.dotnetperls.com/ashx