Domanda

Ho il seguente codice 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>

L'obiettivo pagina è in arrivo, ma la forma che sta ricevendo è vuoto. Ho un punto di rottura sulla mia pagina target.aspx e mentre posso vedere una forma, è tasti sono vuote e Request [ "txtTextField"] mi dà nulla.

Qualsiasi indizio perché?

È stato utile?

Soluzione

Se si utilizza ASP.NET MVC, i nomi degli ingressi devono essere impostati con l'attributo "nome", piuttosto che "id".

Altri suggerimenti

Se si utilizza ASP.NET 4.5 come me, usare sotto suggerimenti

  • disabilitazione automatica friendly URL in un progetto Web Form
    • settings.AutoRedirectMode = RedirectMode.Off; // in RouteConfig.cs
  • se puoi:
    • rimuovere action = "CILandingPage.aspx" da elemento di modulo
    • mettere un asp: tasto al posto del normale pulsante
    • set PostBackUrl = "~ / CILandingPage.aspx" sul asp: pulsante

più risorse con più dettaglio che è stato utile per me

Probabilmente si resetta il valore di forma in gestori di eventi (come Page Load).

Un'altra opzione è quella di catturare i vostri [] dati Request.Form in Application_BeginRequest sulle 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"];
    }
}

Il problema è che i dati del modulo si perde sul reindirizzamento automatico che viene applicato dal friendlyUrls -. Se si memorizzano i dati come qualcosa di diverso i dati dei moduli, non è necessario spegnere friendlyUrls o impostare AutoRedirectMode a RedirectMode.Off

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top