ASP.NET中lightbox窗体上的回发问题

ASP.NET中lightbox窗体上的回发问题,asp.net,forms,postback,lightbox,submission,Asp.net,Forms,Postback,Lightbox,Submission,我需要在ASP.NET页面的灯箱中显示提交表单。 如果提交表单中存在错误,例如用户名不唯一,则回发会在lightbox外部呈现ASP.NET页面。 我怎样才能解决这个问题 以下是包含lightbox的.aspx页面的代码片段: <...> <p> QunatumMotors is located in Detroit. Please use the link below to contact us.</p> <p> <!--STAR

我需要在ASP.NET页面的灯箱中显示提交表单。 如果提交表单中存在错误,例如用户名不唯一,则回发会在lightbox外部呈现ASP.NET页面。 我怎样才能解决这个问题

以下是包含lightbox的.aspx页面的代码片段:

<...>
<p>
    QunatumMotors is located in Detroit. Please use the link below to contact us.</p>
<p>
 <!--START CONTACT FORM OVERLAY-->

        <!-- first overlay. id attribute matches the selector -->
        <a href="**../informational/contactform.aspx"** rel="#overlay" style="text-decoration:none">
        &gt; Click here to contact us
        </a>

        <div class="simple_overlay" id="form_contact">
            <!-- overlayed element -->
            <div class="apple_overlay" id="overlay">
                <!-- the external content is loaded inside this tag -->
                <div class="contentWrap"></div>
            </div>
        </div>
 <!--END CONTACT FORM OVERLAY-->

<p>&nbsp;</p><p>&nbsp;</p>
<...>


QunatumMotors位于底特律。请使用下面的链接与我们联系

contactform.aspx只是一个标准的.aspx页面,包含表单字段、字段验证程序、显示错误的标签(例如用户名不唯一)和提交按钮。 当在contactform.aspx上发生回发时(当然),它会在lightbox外部呈现。如何在灯箱中显示contactform.aspx的回发?
谢谢你的帮助

灯箱内容不像其他选项卡或窗口:它成为主页的一部分

换句话说,它将
contactform.aspx
生成的HTML合并到主机页的文档对象模型(DOM)中。激活lightbox会将一个表单添加到主机页,并将其发布到联系人页:

 <html><body>
     <!-- host page content here -->
     <!-- contact form content -->
     <form action="contactform.aspx">
         <!-- text boxes, buttons, etc. -->
     </form>
 </body></html>

当用户提交时,他们的浏览器会发出一个新的请求:发送到
contactform.aspx
。该请求返回联系人表单的HTML

有几种方法可以解决这个问题:

  • 使用ajax异步执行更新。(您甚至可以通过在
    contactform.aspx
    中使用UpdatePanel来实现这一点,但我不再经常使用它们,也没有想到这一点)

  • contactform.aspx
    转换为控件(如果您在多个位置使用它),并将其嵌入到主机页中

  • 在联系人表单的提交处理程序的末尾,重定向到带有指示页面立即激活lightbox的标志的主机页面。(这有很多问题,听起来很脆弱……但这是有道理的。)


我能够像您在#1(ajax)中所说的那样做到这一点:为了让它与ajax和UpdatePanel一起工作,我不能再动态加载外部内容了。它给了我ScriptManager的错误。我解决这个问题的方法是在contentWrap div标记之间复制和粘贴外部内容,并将href从锚标记中移除。现在很好用。谢谢