ASP.NET中lightbox窗体上的回发问题
我需要在ASP.NET页面的灯箱中显示提交表单。 如果提交表单中存在错误,例如用户名不唯一,则回发会在lightbox外部呈现ASP.NET页面。 我怎样才能解决这个问题 以下是包含lightbox的.aspx页面的代码片段: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
<...>
<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">
> 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> </p><p> </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异步执行更新。(您甚至可以通过在
中使用UpdatePanel来实现这一点,但我不再经常使用它们,也没有想到这一点)contactform.aspx
- 将
转换为控件(如果您在多个位置使用它),并将其嵌入到主机页中contactform.aspx
- 在联系人表单的提交处理程序的末尾,重定向到带有指示页面立即激活lightbox的标志的主机页面。(这有很多问题,听起来很脆弱……但这是有道理的。)