从文件夹中删除文件 - 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
我正在尝试使用 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