2017-10-02 3 views
-1

Ich versuche, Datei aus dem Ordner mit Ajax und Handler.ashx zu löschen. Ich habe eine Verbindung, wenn geklickt wird, ruft removefile() -Methode auf, die weiter Methode in handler.ashx aufruft, um Datei zu löschen. Aber es funktioniert nicht. Das Ergebnis, das bei Erfolg in AJAX zurückgegeben wird, ist immer leer und die Datei wird nicht gelöscht.Datei aus dem Ordner löschen - Ajax asp.net C#

Unten finden Sie den Code ein:

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); 
       } 
      }); 

     } 

Sie den Code unten in Handler.ashx zeigt:

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!"); 
     } 
    } 

mich Bitte leiten, was mache ich falsch. Vielen Dank im Voraus

Antwort

1

ashx-Handler werden nicht wie mvc-Controller aufgerufen: Es gibt keinen Mechanismus, der Ihre URL auf einen Methodennamen abbildet, daher glaube ich nicht, dass Ihre deleteFile-Methode überhaupt aufgerufen wird. Sie können dies überprüfen, indem Sie einen Haltepunkt setzen.

Sie sollten eine ProcessRequest-Methode implementieren. Bei dieser Methode können Sie die vollständige URL überprüfen und Ihre DeleteFile-Methode (bitte starten Sie .net-Methodennamen mit einem Großbuchstaben) mit den richtigen Parametern aufrufen.

Eine vollständige Erklärung zur Verwendung von Handlern finden Sie hier: https://www.dotnetperls.com/ashx

Verwandte Themen