2017-10-02 15 views
-1

ajaxとHandler.ashxを使用してフォルダからファイルを削除しようとしています。私はリンクをクリックするとremovefile()メソッドが呼び出され、さらにhandler.ashxのメソッドを呼び出してファイルを削除します。しかし、それは動作していません。 ajaxで成功すると返される結果は常に空であり、ファイルは削除されません。以下はフォルダからファイルを削除する - 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メソッドが全く呼び出されていないと思います。これを確認するには、ブレークポイントを設定します。

ProcessRequestメソッドを実装する必要があります。このメソッドでは、完全なURLを確認し、正しいパラメータでDeleteFileメソッド(.netメソッド名を大文字で開始してください)を呼び出すことができます。

ハンドラの使用方法の詳細は、こちらをご覧ください。https://www.dotnetperls.com/ashx

関連する問題