我正在使用ajax工具包asyncFileUpload控件
我遇到了服务器端事件未触发的问题,并发现了此帖子 Hidden/Shown AsyncFileUpload Control Doesn't Fire Server-Side UploadedComplete Event
我将 uploader 插入到表单中并使用此属性 enctype="multipart/form-data"method="post"
此 uploader 位于我的网站表单内,该表单位于母版页内
添加此属性后,我收到此错误
A page can have only one server-side Form tag.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Web.HttpException: A page can have only one server-side Form tag.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
这是我的网络表单
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<form id="Form1" enctype="multipart/form-data" method="post" action="target_url"
runat="server">
<div id="Div1" runat="server">
Just some time to make sure that the page doesn't get reloaded after uploading:
<%=DateTime.Now %><br />
<ajaxToolkit:AsyncFileUpload ID="FileUpload" runat="server" OnUploadedComplete="FileUpload_UploadCompleted"
OnClientUploadComplete="FileUpload_ClientUploadCompleted" OnClientUploadError="uploadError"
OnLoad="FileUpload_OnLoad" />
<asp:Image runat="server" ID="imgUpload" src="" />
<asp:Label runat="server" ID="lblerror" Text="" />
</div>
</form>
</asp:Content>
最佳答案
您的 MasterPage
已经有一个 form
元素。不允许嵌套表单
...
我对ajaxToolkit:AsyncFileUpload
了解不多,但是,由于它是一个服务器控件,因此它应该更改父form
的属性。您是否尝试过像下面的代码一样删除表单?
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<div id="Div1" runat="server">
Just some time to make sure that the page doesn't get reloaded after uploading:
<%=DateTime.Now %><br />
<ajaxToolkit:AsyncFileUpload ID="FileUpload" runat="server" OnUploadedComplete="FileUpload_UploadCompleted"
OnClientUploadComplete="FileUpload_ClientUploadCompleted" OnClientUploadError="uploadError"
OnLoad="FileUpload_OnLoad" />
<asp:Image runat="server" ID="imgUpload" src="" />
<asp:Label runat="server" ID="lblerror" Text="" />
</div>
</asp:Content>
另一种可能的解决方案:
“弹出”一个“模态”表单
,其中仅包含带有文件上传控件
的表单。这将解决嵌套表单问题。但是,它确实改变了功能。
关于c# - 如何在asp.net web表单中使用方法="post"的表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9330738/