Pergunta

Eu tenho o seguinte código HTML

<%@ Page Language="C#" %>

<html>
    <head>
        <title></title>
    </head>
    <body>
        <form id="frmSystem" method="post" action="target.aspx">
            <input id="txtTextField" type="text" />
            <input id="btnPost" value="Submit" onclick="javascript:frmSystem.submit();" type="button" />
        </form>
    </body>
</html>

A página de destino está aparecendo, mas o formulário que ela está recebendo está vazio.Eu tenho um ponto de interrupção na minha página target.aspx e embora eu possa ver um formulário, suas chaves estão vazias e Request["txtTextField"] não me dá nada.

Alguma pista do porquê?

Foi útil?

Solução

Se você estiver usando o ASP.NET MVC, os nomes de entrada precisam ser definidos com o atributo "nome" em vez de "id".

Outras dicas

Se você estiver usando ASP.NET 4.5 como eu, use as dicas abaixo

  • Desativar URLs amigáveis ​​automaticamente em um projeto de formulário da Web
    • configurações.AutoRedirectMode = RedirectMode.Off;// em RouteConfig.cs
  • se você puder:
    • remova action="CILandingPage.aspx" do elemento do formulário
    • coloque um asp:button em vez do botão normal
    • definir PostBackUrl="~/CILandingPage.aspx" no seu asp:button

mais recursos com mais detalhes que foram úteis para mim

Você provavelmente redefiniu o valor do formulário nos manipuladores de eventos (como Page_load).

Outra opção é capturar seu request.form [] dados em application_beginRequest no global.asax.cs:

protected void Application_BeginRequest(object sender, EventArgs e)
{
    //capture form data and preserve in query string
    if (Request.Form["txtTextField"]!= null)
    {
        Response.Redirect(Request.RawUrl + "?txtTextField=" 
          + Request.Form["txtTextField"]);
    }
    //or preserve in Session variable
    if(Request.Form["txtTextField"]!=null)
    {
        Session["txtTextField"]=Request.Form["txtTextField"];
    }
}

O problema é que os dados do formulário são perdidos no redirecionamento automático que é aplicado por amigas - se você armazenar esses dados como algo que não for formado dados, é desnecessário desativar o FriendlyUrls ou definir o AutoredirectMode para redirectmode.off.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top