Warum ist mein Asp.Net Formular Ankunft leer, wenn ich von Seite zu Seite veröffentlichen?

StackOverflow https://stackoverflow.com/questions/2433624

  •  19-09-2019
  •  | 
  •  

Frage

Ich habe den folgenden HTML-Code

<%@ 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>

Das Ziel Seite kommt, aber die Form, die er empfängt, ist leer. Ich habe einen Bruchstelle auf meine target.aspx Seite und während ich ein Formular sehen können, ist es der Schlüssel leer sind und Request [ „txtTextField“] gibt mir nichts.

Jede Ahnung warum?

War es hilfreich?

Lösung

Wenn Sie ASP.NET MVC verwenden, müssen die Eingangsnamen mit dem Attribut „name“ gesetzt werden, anstatt „id“.

Andere Tipps

Wenn Sie mit ASP.NET 4.5 wie ich, bei Temperaturen unter Hinweisen

  • Deaktivieren Sie die automatische Freundliche URLs in einem Projekt Webformular
    • settings.AutoRedirectMode = RedirectMode.Off; // in RouteConfig.cs
  • , wenn Sie können:
    • Entfernen action = "CILandingPage.aspx" von Formularelement
    • legt eine asp: Taste anstelle der normalen Taste
    • set PostBackUrl = "~ / CILandingPage.aspx" auf asp: Taste

mehr Ressourcen mit mehr Details, die mir nützlich war

Sie haben wahrscheinlich die Form Wert in Ereignishandler zurückgesetzt (wie page_load).

Eine weitere Option ist Ihre Request.Form [] Daten in Application_BeginRequest auf dem Global.asax.cs zu erfassen:

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"];
    }
}

Das Problem ist, dass die Formulardaten auf der automatischen Umleitung verloren wird, die durch friendlyUrls angewandt wird - wenn Sie die Daten speichern als etwas anderes als Formulardaten ist es nicht notwendig friendlyUrls oder Satz AutoRedirectMode zu RedirectMode.Off auszuschalten <. / p>

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top