C# 如何使用form with method=";邮政「;在asp.net web表单中

C# 如何使用form with method=";邮政「;在asp.net web表单中,c#,asp.net,ajax,ajaxcontroltoolkit,asyncfileupload,C#,Asp.net,Ajax,Ajaxcontroltoolkit,Asyncfileupload,我正在使用ajax工具包asyncFileUpload控件 我有一个问题,我的服务器端事件并没有被触发,并发现这篇文章 我在表单中插入了我的上传程序,并使用此属性enctype=“multipart/form data”method=“post” 这个上传程序在我的网页表单中,它在母版页中 添加此属性后,我出现此错误 A page can have only one server-side Form tag. Description: An unhandled exception oc

我正在使用ajax工具包asyncFileUpload控件

我有一个问题,我的服务器端事件并没有被触发,并发现这篇文章

我在表单中插入了我的上传程序,并使用此属性
enctype=“multipart/form data”method=“post”

这个上传程序在我的网页表单中,它在母版页中

添加此属性后,我出现此错误

    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>

请花些时间确保页面在上传后不会重新加载:


您的
母版页
已经有一个
表单
元素。不允许嵌套的
表单
s

我对ajaxToolkit:AsyncFileUpload不太了解,但是,由于它是一个服务器控件,它应该更改父
窗体的属性。您是否尝试过按下面的代码删除表单

<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>

请花些时间确保页面在上传后不会重新加载:

另一种可能的解决方案:


“Pop”是一个“modal”
表单
,它只包含带有
文件上载控件的表单
。这将解决嵌套表单问题。但是,它确实改变了功能。

作为一个非常肮脏的黑客,尝试在表单前面添加一个
,并从嵌套表单中删除runat=“server”

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
    **<form></form>**
    <form id="Form1" enctype="multipart/form-data" method="post" action="target_url"
    >
    <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>

****
请花些时间确保页面在上传后不会重新加载:

在过去,当我被迫使用WebForms时,这对我来说是有效的。我不知道为什么,但我发现在WebForms中有很多这样的情况


但是,如果您想编写这样的代码,您确实应该切换到MVC。即使这真的有效,也不是我所说的解决方案。WebForms并不是专门设计来做这件事的。

这是ASP.NET WebForms糟糕透顶的主要原因之一。解决方法是将整个页面塞进允许的
表单
标签中,然后每次都发布整个该死的内容。GL.是的,我知道只允许使用一个表单标签,但我如何才能使上传程序工作?是的,但没有表单标签服务器端事件不会发生您的
母版页是否有
表单