C# AjaxUploadControl不触发onuploadcomplete方法
我试图在我的站点上实现AjaxUploadControl功能,但它没有启动OnUploadComplete方法。相反,它只是说文件上传了100%,但文件不在指定的文件夹中。我已经在OnUploadComplete方法中设置了断点,并且能够确定永远不会到达这个方法。当“取消”按钮显示时,它几乎像是跳进了一个无限循环,但一旦试图上传文件,屏幕上的任何按钮都无法点击 .aspx页面:C# AjaxUploadControl不触发onuploadcomplete方法,c#,asp.net,ajax,file-upload,ajaxcontroltoolkit,C#,Asp.net,Ajax,File Upload,Ajaxcontroltoolkit,我试图在我的站点上实现AjaxUploadControl功能,但它没有启动OnUploadComplete方法。相反,它只是说文件上传了100%,但文件不在指定的文件夹中。我已经在OnUploadComplete方法中设置了断点,并且能够确定永远不会到达这个方法。当“取消”按钮显示时,它几乎像是跳进了一个无限循环,但一旦试图上传文件,屏幕上的任何按钮都无法点击 .aspx页面: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AjaxTest.aspx.cs" Inherits="AjaxTest" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</ajaxToolkit:ToolkitScriptManager>
<div>
<ajaxToolkit:AjaxFileUpload ID="ajaxUpload1" runat="server" OnUploadComplete="ajaxUpload1_OnUploadComplete" />
</div>
</form>
</body>
</html>
非常感谢您的帮助 属性是
OnClientUploadComplete
,而不是OnUploadComplete
参考
事件
UploadedComplete—上载文件时在服务器上引发
成功地在本事件中,将显示AjaxFileUploadEventArgs的实例
传入包含文件名、大小和内容类型的参数
如果您没有设置正确的enctype和方法,UploadedComplete将永远不会启动。 尝试将enctype=“multipart/form data”添加到表单标记中。 例如
代码隐藏:
protected void AjaxFileUpload1_UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
{
string filePath = "~/SiteImages/";
AjaxFileUpload1.SaveAs(MapPath(filePath + System.IO.Path.GetFileName(e.FileName)));
}
<form id="form1" runat="server" enctype="multipart/form-data" method="post">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<asp:AjaxFileUpload ID="AjaxFileUpload1" runat="server"
onuploadcomplete="AjaxFileUpload1_UploadComplete" />
</div>
</form>
内联代码:
protected void AjaxFileUpload1_UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
{
string filePath = "~/SiteImages/";
AjaxFileUpload1.SaveAs(MapPath(filePath + System.IO.Path.GetFileName(e.FileName)));
}
<form id="form1" runat="server" enctype="multipart/form-data" method="post">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<asp:AjaxFileUpload ID="AjaxFileUpload1" runat="server"
onuploadcomplete="AjaxFileUpload1_UploadComplete" />
</div>
</form>
希望有帮助。我发现了我的问题。我试着在一个网站上实现这个功能,而不是在一个web应用程序上。我创建了一个测试web应用程序平台,它工作得完美无缺。我是AJAX的初学者,没有意识到这会引起问题,但是,有人知道在网站上使用此功能的解决方案吗。现在恐怕有太多东西无法轻松移植到web应用。您遇到的实际问题是您的web.config中需要一个HTTP处理程序
<httpHandlers>
<add verb="*" path="AjaxFileUploadHandler.axd"
type="AjaxControlToolkit.AjaxFileUploadHandler,
AjaxControlToolkit"/>
</httpHandlers>
我也有同样的问题(上传时出现红色错误,.cs文件中的事件根本没有触发),现在通过将其添加到我的web.config中解决了。请遵循以下规则(.NET 4.0)或(.NET 4.5 FRAMEWORKS)
<httpHandlers>
<add verb="*" path="AjaxFileUploadHandler.axd"
type="AjaxControlToolkit.AjaxFileUploadHandler,
AjaxControlToolkit"/>
</httpHandlers>
确保在项目中使用了以下步骤
如果您没有设置正确的enctype和方法,UploadedComplete将永远不会启动。请尝试将enctype=“multipart/form data”添加到表单标记中。我将您建议的内容添加到我的表单选项卡中,现在看起来像“”,但我仍然有相同的问题。不,如果您使用ajax控件工具包,您不必这样做。在Page\u Load
中是否有依赖于IsPostBack
属性的逻辑?查询字符串中是否有参数?我还添加了method=“post”,但仍然没有成功。您使用的是哪个版本的Ajax控件工具包?请尝试以下操作OnClientUploadComplete=“ajaxUpload1\u OnUploadComplete”我需要在服务器端执行此操作,我建议下载最新版本的Ajax控件工具包并添加到您的项目中,因为我刚刚用较新版本测试过它,它确实会触发事件并命中断点。我不想执行客户端java脚本。我正试图在codebehind中的服务器端执行此操作。如果是这样,请查看我的编辑。您使用的事件错误。Intellisense不包含UploadedComplete的条目?请检查并单击事件和属性。我已经看到,我已尝试将其插入到我的代码中。这个站点和其他几个站点以我的方式引用它。我将再次尝试上载完成并让您知道。