从文件夹中删除文件 - ajax asp.net c#

Delete file from folder - ajax asp.net c#

我正在尝试使用 ajax 和 Handler.ashx 从文件夹中删除文件。单击时我有一个 link 调用 removefile() 方法,该方法进一步调用 handler.ashx 中的方法来删除文件。但它不起作用。 ajax 成功返回的结果始终为空,文件未被删除。

代码如下:

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

请指导我我做错了什么。提前谢谢你

ashx-Handlers 不像 mvc 控制器那样被调用:没有机制将您的 url 映射到方法名称,所以我认为您的 deleteFile-method 根本不会被调用。您可以通过设置断点来验证这一点。

您应该实施 ProcessRequest 方法。在此方法中,您可以验证完整的 url 并使用正确的参数调用您的 DeleteFile 方法(请以大写开头的 .net 方法名称)。

可在此处找到有关使用处理程序的完整说明:https://www.dotnetperls.com/ashx