2009-04-18 10 views
1

Comment accéder aux données de html dans asp.net dans le fichier .cs (code behind)?Comment accéder aux données des contrôles html dans asp.net

Dans la page .aspx J'ai:

   <tr> 
       <td>Username:</td><td><input id="username" type="text" /></td> 
      </tr> 
      <tr> 
       <td>Password:</td><td><input id="password" type="password" /></td> 
      </tr> 
      <tr> 

Je sais que je peux convertir en quelque chose comme:

<tr> 
     <td>Username:</td><td><asp:TextBox ID="username" TextMode="SingleLine" runat="server"></asp:TextBox></td> 
    </tr> 
    <tr> 
     <td>Password:</td><td><asp:TextBox ID="password" TextMode="Password" runat=server></asp:TextBox></td> 
    </tr> 

Cela me permettra d'accéder aux commandes via ID. Cependant je me demandais s'il y avait un moyen d'accéder aux données sans utiliser les contrôles côté serveur asp.net.

Répondre

10

Attribuez un nom ainsi qu'un identifiant aux entrées et vous obtiendrez les valeurs de Request.Form. Les entrées sans noms ne sont pas renvoyées avec le message de formulaire.

<input id="username" name="username" type="text" /> 
<input id="password" name="password" type="password" /> 


var username = Request.Form["username"]; 
var password = Request.Form["password"]; 
2

Ajouter runat="server" aux commandes, et vous pouvez y accéder à partir du code-behind presque comme si elles étaient <asp:______ /> contrôles.

0

Les contrôles ASP.NET sont par essence des contrôles HTML encapsulés, de sorte qu'un asp:Button s'affichera en tant que contrôle Html input. Certains développeurs Web préfèrent utiliser les contrôles Html en raison de la plus petite taille. Par conséquent, chaque contrôle HTML sera mappé à un contrôle de serveur ASP. Comme la réponse précédente, à partir de Joel, ajoutez le runat="server", puis le contrôle peut être référencé par l'ID du code derrière.

0

Ceci est votre code:

<tr> 
    <td>Username:</td> 
    <td><input id="username" type="text" /></td> 
</tr> 
<tr> 
    <td>Password:</td> 
    <td><input id="password" type="password" /></td> 
</tr> 

Vous pouvez simplement ajouter l'attribut runat="server" au contrôle Html:

<tr> 
    <td>Username:</td> 
    <td><input id="username" runat="server" type="text" /> <!--NOTE THE RUNAT="SERVER"--></td> 
</tr> 
<tr> 
    <td>Password:</td> 
    <td><input id="password" **runat="server"** type="password" /></td> 
</tr> 

Maintenant, vous pouvez accéder aux commandes en asp.net.

Questions connexes