Asp.net Can';无法让AsyncFileUpload在更新面板中工作

Asp.net Can';无法让AsyncFileUpload在更新面板中工作,asp.net,Asp.net,我有一个带有updatepanel、脚本管理器和asyncfileupload控件的用户控件 <%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %> <asp:ScriptManager ID="ScriptManager2" runat="server" ></asp:ScriptManager> <asp:UpdateP

我有一个带有updatepanel、脚本管理器和asyncfileupload控件的用户控件

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %> 
<asp:ScriptManager ID="ScriptManager2" runat="server" ></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <cc1:AsyncFileUpload ID="AsyncFileUpload2" runat="server" />
        <asp:LinkButton id="lbSubmitOrder" runat="server" title="Submit Order Request" class="btn_blue_dynamic_med"/>
    </ContentTemplate>      
</asp:UpdatePanel>
在我的AsyncFileUpload2对象中,文件名为nothing。我好像找不到应该上传的文件

-内特

更新
我补充说

Private Sub AsyncFileUpload1_UploadedComplete(ByVal sender As Object, ByVal e As AjaxControlToolkit.AsyncFileUploadEventArgs) Handles AsyncFileUpload1.UploadedComplete
    If e.state = AjaxControlToolkit.AsyncFileUploadState.Success Then
        '....'
    Else
        showErrorMessage(e)
    End If
End Sub
在选择文件后,我无法在“if”语句处找到断点。我想我的页面上的ajax工作方式有问题吧?不知道是什么

修复

我通过一个带有visible=true/false div的单选按钮显示ajax上传框。答案告诉我控件必须在页面加载时出现。我拿走了潜水舱,一切正常!现在,我将通过jquery进行显示/隐藏(这是我首先应该做的)

确保不异步加载带有asyncfileupload控件的usercontrol,例如通过Response.Redirect(“pageWithUploadControl”)加载

您是否已处理FileUploadComplete事件并检查AsyncFileUploadState是否成功

   Private Sub AsyncFileUpload1_UploadedComplete(ByVal sender As Object, ByVal e As AjaxControlToolkit.AsyncFileUploadEventArgs) Handles AsyncFileUpload1.UploadedComplete
        If e.state = AjaxControlToolkit.AsyncFileUploadState.Success Then
            '....'
        Else
            showErrorMessage(e)
        End If
    End Sub

    Private Sub showErrorMessage(ByVal e As AjaxControlToolkit.AsyncFileUploadEventArgs)
        Dim message As String = String.Empty
        Select Case e.statusMessage
            Case AjaxControlToolkit.AsyncFileUpload.Constants.Errors.EmptyContentLength
                message = "Empty content length!"
            Case AjaxControlToolkit.AsyncFileUpload.Constants.Errors.FileNull
                message = "Fill NULL!"
            Case AjaxControlToolkit.AsyncFileUpload.Constants.Errors.InputStreamNull
                message = "Input Stream NULL!"
            Case AjaxControlToolkit.AsyncFileUpload.Constants.Errors.NoFileName
                message = "No File Name!"
            Case AjaxControlToolkit.AsyncFileUpload.Constants.Errors.NoFiles
                message = "No Files!"
        End Select
        LblMessage.Text = message 
    End Sub
尝试更改表单的enctype:

<form id="form1" enctype="multipart/form-data" runat="server">

您好,您可以使用
OnUploadedComplete=“AsyncFileUploadedPDF\u UploadedComplete”
在.cs文件中添加

protected void AsyncFileUploadPDF_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
        {
            if (AsyncFileUploadImage.HasFile)
            {
                Session["AsyncFileUploadPDF"] = AsyncFileUploadImage;
            }
        }
当我点击按钮的事件时,你们可以在任何你们想要的地方从会话中获取数据

protected void btnSaveParts_Click(object sender, EventArgs e)
        {
            AsyncFileUploadPDF = (AsyncFileUpload)Session["AsyncFileUploadPDF"];
            PdfFileName = AsyncFileUploadPDF.FileName;         
        }

如果这对某人有帮助,我通过在表单标记中添加以下内容来修复我的问题:

enctype="multipart/form-data" method="post"

我也遇到了同样的问题,阅读并尝试了无数关于如何解决这个问题的帖子(显然很多人都遇到了这个问题),但都没有效果。直到我将
ScriptManager
替换为
ToolkitScriptManager

更改:

<asp:ScriptManager ID="ScriptManager2" runat="server" ></asp:ScriptManager>

与:



我不确定这是否是最新工具包(2013年12月)的要求,但它对我有效。希望它也能帮助其他人。

没有达到那个临界点。这是否意味着我的脚本管理器有问题?我不知道如何从这里调试…@Nate:请看我的编辑并尝试更改表单的enctype。先生,你能为这个脚本制作一个C版本吗?我现在也面临同样的问题。@BlackHatShadow:使用一个在线转换器,例如:这里:很抱歉回复太晚。谢谢。^ ^这真的很有帮助。^ ^文件在哪里??如何保存文件?
<asp:ScriptManager ID="ScriptManager2" runat="server" ></asp:ScriptManager>
<cc1:ToolkitScriptManager ID="ScriptManager2" runat="Server" />