Question

J'ai le code HTML suivant

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

La page cible est à venir, mais la forme qu'il reçoit est vide. J'ai un point d'arrêt sur ma page target.aspx et pendant que je peux voir une forme, c'est les clés sont vides et demande [ « txtTextField »] ne me donne rien.

Un indice pourquoi?

Était-ce utile?

La solution

Si vous utilisez ASP.NET MVC, les noms d'entrée doivent être définis avec l'attribut « name » plutôt que « id ».

Autres conseils

Si vous utilisez ASP.NET 4.5 comme moi, utilisez ci-dessous des notes

  • Désactiver auto Friendly URLs dans un projet de formulaire Web
    • settings.AutoRedirectMode = RedirectMode.Off; // dans RouteConfig.cs
  • si vous pouvez:
    • retirer action = "CILandingPage.aspx" de l'élément de forme
    • mettre un asp: bouton au lieu de bouton normal
    • set PostBackUrl = "~ / CILandingPage.aspx" sur votre asp: bouton

plus de ressources avec plus de détails qui m'a été utile

Vous avez probablement réinitialiser la valeur de formulaire dans les gestionnaires d'événements (tels que page_load).

Une autre option est de capturer vos Request.Form [] données Application_BeginRequest sur les 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"];
    }
}

Le problème est que les données de formulaire est perdue sur la redirection automatique qui est appliqué par friendlyUrls -. Si vous stockez les données comme autre chose que des données de formulaire, il est inutile de désactiver friendlyUrls ou mis AutoRedirectMode à RedirectMode.Off

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top