Warum ist mein Asp.Net Formular Ankunft leer, wenn ich von Seite zu Seite veröffentlichen?
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?
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>