C# jquery对话框内的文件上载,hasfile false

C# jquery对话框内的文件上载,hasfile false,c#,jquery,asp.net,jquery-ui,webforms,C#,Jquery,Asp.net,Jquery Ui,Webforms,我的页面上有一个jQueryUI对话框。它只包含一个asp文件上载控件: <asp:FileUpload runat="server" ID="fuAttachment" /> 按“我的页面”上的“保存”按钮时。调用SaveAttachement方法的asp.net按钮 问题是fuAttachment.HasFile(fileupload控件)不断返回false。 如果我将fileupload控件移到jQuery UI对话框之外。HasFile=true 但是控件应该在对话框中。特

我的页面上有一个jQueryUI对话框。它只包含一个asp文件上载控件:

<asp:FileUpload runat="server" ID="fuAttachment" />
按“我的页面”上的“保存”按钮时。调用SaveAttachement方法的asp.net按钮

问题是fuAttachment.HasFile(fileupload控件)不断返回false。 如果我将fileupload控件移到jQuery UI对话框之外。HasFile=true


但是控件应该在对话框中。特定页面内没有updatepanel。

出现问题的原因是对话框在表单之外

$("#attachment-dialog").dialog({
            appendTo: "form",
            height: 300,
            width: 400,
            modal: true,
            resizable: false,
            autoOpen: false,
            buttons: {
                "OK": function () {
                    $(this).dialog("close");
                }
            }
  });
jQueryUI对话框有一个参数,该参数将确保对话框是表单的一部分

$("#attachment-dialog").dialog({
            appendTo: "form",
            height: 300,
            width: 400,
            modal: true,
            resizable: false,
            autoOpen: false,
            buttons: {
                "OK": function () {
                    $(this).dialog("close");
                }
            }
  });

只是猜测一下,但是jq.dialog可能将您的上传输入移动到它所属的表单之外,并将其附加到dom的其他地方。解决方案是将整个表单包含在对话框中。@wwwmarty该建议不适用于ASP.NET Web表单,因为Web表单只能有一个表单,并且该表单必须包含所有服务器端控件。