2009-09-02 5 views
1

Ok, je viens de commencer à apprendre ASP.NET MVC après avoir été un développeur ASP.NET pendant un certain temps. Je pense que mon principal problème est d'essayer de "désapprendre" ASP.NET lors du développement de mes projets MVC.effectuer des recherches avec ASP.NET MVC

Voici ma question: J'ai une page qui a quelques champs de saisie. Ces champs sont les paramètres d'une recherche que j'essaie d'exécuter sur une base de données. L'utilisateur coche les cases à côté des types d'éléments qu'il souhaite voir, puis clique sur "Rechercher". Des trucs très simples.

Je n'arrive pas à résoudre mon problème de "postback" sur la page pour afficher les résultats. Est-il préférable d'utiliser jQuery et de sérialiser le formulaire? Est-ce que j'utilise mes modèles Entity Framework que j'ai créés? Quelle est la meilleure façon de faire

Je suis vraiment excité à propos de MVC et du contrôle qu'il me donne, mais j'ai besoin de surmonter ces obstacles initiaux si jamais je veux le «vendre» à mon patron comme moyen de développer toutes nos applications web. Merci d'avoir lu!

Répondre

2

Si vos entrées sont à l'intérieur de l'élément de formulaire html (histoire différente si javascript est impliqué) - vous pouvez utiliser default model binding (il lie aussi les valeurs de route et les paramètres de chaîne de requête).

<form ...> 
    <input type="text" name="query" /> 
    <input type="submit" .../> 
</form> 

le soumettre se lier automagiquement les valeurs de formulaire (par nom) aux paramètres d'action:

public ActionResult PerformSearch(string query) 
{ 
    //whatever 
} 

Dans votre cas - je vous soupçonne avez des entrées comme des cases à cocher. Quelque chose comme cela devrait fonctionner:

<form...> 

    <input type="checkbox" name="p" value="value1" /> 
    <input type="checkbox" name="p" value="value2" /> 
    <input type="checkbox" name="p" value="value3" /> 
    <input type="checkbox" name="p" value="value4" /> 
    <input type="checkbox" name="p" value="value5" /> 
</form> 

public ActionResult PerformSearch(string[] p) 
{ 
    //whatever 
} 

seulement - si, URL ne regardera pas bien (méthode formulaire == "GET"). :)

Pour afficher les résultats, faire un modèle pour votre point de vue en action et juste montrer à travers vue:

public ActionResult PerformSearch(string[] p) 
{ 
    var model = _searchService(p); 
    return View("Results", model); 
} 

Vues/results.aspx

<% foreach(var bar in Model){ %> 
    <%= bar.Name %> 
<%}%> 

P.S. Lors de l'examen des appels AJAX, rappelez-vous toujours que vous perdez la possibilité d'afficher l'URL + les moteurs de recherche ne comprennent pas JS.

2

Si vous avez pas déjà, envisager de prendre un coup d'œil à l'NerdDinner Tutorial présenté dans Professional ASP.NET MVC 1.0 par Rob Conery, Scott Hanselman, Phil Haack et Scott Guthrie. Il contient une grande démonstration de nombreuses fonctionnalités d'ASP.NET MVC, y compris l'exécution d'une recherche et le renvoi des données à la fois via une publication en pleine page et de manière asynchrone en utilisant JSON.

+0

Pourquoi ce vote a-t-il été annulé? –

Questions connexes