2009-11-15 5 views
2

Ce n'est pas facile à expliquer alors s'il vous plaît nu avec moi.JQuery/MVC Recherche Problème

J'ai hérité d'un travail où l'écran de saisie montre un résumé de 20 variables calculées. Par exemple. Var A (250), Var B (79). En cliquant sur l'un de ces liens, l'utilisateur accède à une vue avec une liste de champs - tous les 20 utilisent le même contrôleur mais avec un GET différent pour chacun avec une instruction LINQ to SQL différente - fournissant à la vue des données différentes pour chaque.

Cela fonctionne comme prévu. Cependant, je dois ajouter une recherche JQuery pour cette vue. Normalement, je cracherais la vue de sorte que le haut avait une boîte de recherche et le fond avait un partiel avec les résultats.

J'utiliserais alors JQuery pour appeler une autre méthode get contenant la méthode LINQ d'origine et ajouter le texte de recherche entré par l'utilisateur.

Êtes-vous toujours avec moi? :)

Ma question est - Y at-il une façon plus élégante de faire cela?

De cette façon, je devrais peut-être passer dans le type variable et avoir une énorme instruction switch pour appeler le LINQ correct et retourner le bon modèle pback au partiel.

Je pensais, peut-être que je devrais passer JSON de la JQuery, le filtrer dans le contrôleur et le renvoyer au partiel mais je ne sais pas comment s'y prendre ou même si c'est possible.

Je suis ouvert à tous les ides ici et peut poster du code ou priovide plus d'informations si cela peut aider.

Merci

+2

ouais je pense avec un peu de code aiderait, pouvez-vous poster? –

Répondre

0

J'espère que je comprends bien: vous voulez une zone de recherche jQuery pour obtenir des informations de la base de données et le charger dans la vue, non?

Vous pouvez facilement utiliser jQuery pour appeler des actions dans votre contrôleur, puis charger les résultats sur la page en cours de manière asynchrone. C'est assez simple.

$('#DIVYOUWANTTOLOADINTO').empty(); 
$('#DIVYOUWANTTOLOADINTO').load('@Url.Action("CONTROLLERACTION","CONTROLLER")/' + JSVALUETOPASS, function() { //callback function }); 
0

sans voir le code, je vous suggère la suppression des vues partielles de l'équation et d'obtenir juste un contrôleur pour retourner votre résultat en fonction de la variable que vous envoyez. Une fois que vous avez que vous travailler peut faire face à l'esthétique .

public JsonResult MyAction(int myVar) 
{ 
    var result; 

    switch (myVar) 
    { 
     case X: 
      { 
       result = from f in foo.bar select f; 
       break;    
      } 
     ... 
    } 

    return Json(new { Result = result }); 
}