Problema com reposição em um lightbox no formulário ASP.NET
-
14-11-2019 - |
Pergunta
É necessário apresentar um formulário de apresentação dentro de uma div de uma ASP.NET página.Se houver um erro na submissão do formulário, tais como nome de usuário, não sendo exclusivo, o postback, em seguida, processa o ASP.NET página fora do lightbox.Como posso resolver esse problema?
Aqui está um fragmento de código do .página aspx que inclui o jquery:
<...>
<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>
<...>
contactform.aspx é apenas um padrão .página aspx com campos de formulário, o campo de validadores, rótulo para exibir erros (por exemplo,nome de usuário não exclusivo) e o botão enviar.Quando uma nova postagem ocorre em contactform.aspx, em seguida, (é claro) é prestado fora do lightbox.Como posso exibir a reposição de contactform.aspx dentro do jquery?Obrigado por sua ajuda!
Solução
O visuallightbox conteúdo não é como outra guia ou janela:torna-se parte da página do host.
Em outras palavras, ele incorpora o HTML gerado pelo contactform.aspx
na página do host do modelo de objeto de documento (DOM).Ativando o lightbox adiciona um formulário para a página do host que envia para a página de contato:
<html><body>
<!-- host page content here -->
<!-- contact form content -->
<form action="contactform.aspx">
<!-- text boxes, buttons, etc. -->
</form>
</body></html>
Quando o usuário submete, seus problemas com o navegador de um novo pedido:um POST para contactform.aspx
.Que a solicitação retorna o formulário de contato's HTML.
Existem várias maneiras que você pode contornar isso:
Usar ajax para realizar o update de forma assíncrona.(Você pode até mesmo ser capaz de fazer isso usando um UpdatePanel em
contactform.aspx
, mas eu não uso muito mais e não apesar de que, por meio).Converter
contactform.aspx
em um controle (se você estiver usando-o em vários lugares) e incorporá-lo na página do host.No final do formulário de contato do manipulador de envios, redirecionar para a página do host com um sinalizador que indica que a página imediatamente ativar o javascript.(Esta tem inúmeros problemas e parece muito frágil ...mas é plausível.)