Dépannage d'un problème d'état de session IIS J'ai trouvé une page simple à utiliser comme test. Cette page fonctionne.Comment utiliser 'input type = "Soumettre" OnServerClick =' de codebehind
<body>
<form id="form1" runat="server">
<div>
<input type="text"
id="text1"
runat="server"
/>
<input type="Submit"
id="Submit1"
OnServerClick="Session_Add"
value="Add to Session State"
runat="server"
/>
<input type="Submit"
id="Submit2"
OnServerClick="CheckSession"
value="View Session State"
runat="server"
/>
<hr size="1"/>
<font size="6"/><span id="span1" runat="server"/>
</div>
</form>
<script language="C#" runat="server">
void Session_Add(Object sender, EventArgs e)
{
Session["MySession"] = text1.Value;
span1.InnerHtml = "Session data updated! <P> Your session contains: <font color=red>" +
Session["MySession"].ToString() + "</font>";
}
void CheckSession(Object sender, EventArgs e)
{
if (String.IsNullOrEmpty(Session["MySession"].ToString()))
{
span1.InnerHtml = "NOTHING, SESSION DATA LOST!";
}
else
span1.InnerHtml = "Your session contains: <font color=red>" +
Session["MySession"].ToString() + "</font>";
}
</script>
Pour aucune raison particulière autre que je voulais le faire de cette façon, j'essayé de déplacer la partie dans le bloc de script dans un fichier behind. Ce code suit:
protected void Page_Load(object sender, EventArgs e)
{
Submit1.ServerClick += new System.EventHandler(this.Session_Add);
Submit2.ServerClick += new System.EventHandler(this.CheckSession);
}
void Session_Add(Object sender, EventArgs e)
{
Session["MySession"] = text1.Value;
span1.InnerHtml = "Session data updated! <P> Your session contains: <font color=red>" +
Session["MySession"].ToString() + "</font>";
}
void CheckSession(Object sender, EventArgs e)
{
if (String.IsNullOrEmpty(Session["MySession"].ToString()))
{
span1.InnerHtml = "NOTHING, SESSION DATA LOST!";
}
else
span1.InnerHtml = "Your session contains: <font color=red>" +
Session["MySession"].ToString() + "</font>";
}
}
compilateur Message d'erreur: CS1061: 'ASP.webform1_aspx' ne contient pas de définition de 'Session_Add' et aucune méthode d'extension 'Session_Add' accepter un premier argument de type « ASP.webform1_aspx 'pourrait être trouvé (manque-t-il une directive d'utilisation ou une référence d'assemblage?)
Que devrais-je faire pour que cela fonctionne?
Ne pensez pas que vous pouvez le faire. Essayez de le remplacer par un contrôle serveur asp: button (pour qu'il connecte correctement les gestionnaires d'événements). – RPM1984