2010-01-21 3 views
0

J'essaie de créer un formulaire en C# MVC qui permettra à un utilisateur d'entrer un nom, prénom, département, année et de cliquer sur un bouton de recherche qui ramènera une liste d'employés basée sur les critères de recherche entrés.Plusieurs zones de texte utilisées pour le filtrage/la recherche dans MVC C#

Mon problème est de permettre plusieurs critères de recherche dans un bouton de recherche.

Je suis capable de coder en dur les valeurs dans un lien d'action html comme ci-dessous et cela fonctionne mais incapable de saisir les valeurs des zones de texte. Je voudrais vraiment juste avoir quatre zones de texte et un bouton de recherche pour ramener la liste de la base de données.

Merci pour l'aide.

Répondre

0

Je pense que vous devez utiliser un formulaire et un bouton de soumission, alors vous obtiendrez les valeurs de tous les champs de saisie dans le formulaire, vous pouvez le faire avec ajax afin de ne pas actualiser toute la page. Si vous ne voulez pas la solution de formulaire, vous pouvez utiliser javascript (jquery est bon) pour détecter le changement de valeur des zones de texte, puis saisir la valeur des zones de texte et faire un appel ajax au contrôleur, envoyer ces valeurs .

+0

Merci pour la réponse rapide, ce que vous arrive d'avoir un exemple? –

1

Si vous l'avez dans un formulaire, vous pouvez en saisir un ensemble avec des valeurs pour chaque zone de texte (ou toute autre balise dans le formulaire).

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Results(string lastName, string firstName, string dept, int year) 

Cette méthode surcharge Results et n'est lancée que par une requête POST.

+0

Comment est-ce que je passerais la valeur des zones de texte qui est dans Index.aspx à la méthode Résultats. J'ai à peu près juste besoin du code qui appartient au fichier aspx. Merci pour l'aide. –

+0

Eh bien, il a déjà écrit Coov dans sa réponse. Je suppose que la combinaison de ces deux fera ce que vous cherchez. – Trimack

2

Sur votre page Index.aspx

<% using (Html.BeginForm()) { %> 

    <%= Html.TextBox("firstname") %> 
    <%= Html.TextBox("lastname") %> 

    <input id="submit1" type="submit" value="Submit" /> 

<% } %> 

Cela affichera les valeurs de champ de formulaire « prenom » et « LastName » et vous les chercher dans votre action comme dans l'exemple de @ Trimack.

Vous pouvez transférer les données publiées vers votre page de résultats avec TempData.

TempData["firstName"] = firstname; 

Dans votre page results.aspx vous auriez:

<%= Html.Hidden("firstname", TempData["firstName"]) %> 
Questions connexes