2 Stimmen

JQuery/MVC Suche Problem

Ich habe eine Arbeit geerbt, bei der der Eingabebildschirm eine Zusammenfassung von 20 berechneten Variablen anzeigt. Z.B. Var A (250), Var B (79).

Wenn der Benutzer auf einen dieser Links klickt, gelangt er zu einer Ansicht mit einer Liste von Feldern - alle 20 verwenden denselben Controller, aber mit einem anderen GET für jedes Feld mit einer anderen LINQ to SQL-Anweisung, wodurch die Ansicht mit unterschiedlichen Daten für jedes Feld versorgt wird.

Dies funktioniert wie erwartet. Allerdings muss ich eine JQuery-Suche für diese Ansicht hinzufügen. Normalerweise würde ich die Ansicht spucken, so dass die oben ein Suchfeld hatte und der Boden hatte eine teilweise mit den Ergebnissen.

Ich würde dann JQuery verwenden, um eine andere Get-Methode aufzurufen, die die ursprüngliche LINQ-Methode enthält, und den vom Benutzer eingegebenen Suchtext hinzufügen.

Bist du noch bei mir? :)

Gibt es eine elegantere Möglichkeit, dies zu tun?

Meine Art und Weise, müsste ich vielleicht in den Variablentyp übergeben und haben eine riesige Switch-Anweisung, um die richtige LINQ aufrufen und das richtige Modell pback an die partielle zurück.

Ich dachte, vielleicht sollte ich JSON zurück von der JQuery übergeben, filtern Sie es in den Controller und übergeben Sie es zurück zu den partiellen, aber nicht sicher, wie man über es gehen oder sogar, wenn es möglich ist.

0voto

Kyeotic Punkte 19440

Ich hoffe, ich verstehe das richtig: Sie wollen ein jQuery-Suchfeld, um Informationen aus der Datenbank zu erhalten und laden Sie es in die Ansicht, richtig?

Sie können jQuery einfach verwenden, um Aktionen in Ihrem Controller aufzurufen und dann die Ergebnisse asynchron auf die aktuelle Seite zu laden. Es ist ziemlich einfach.

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

0voto

Terry Punkte 13921

Ohne Code zu sehen, schlage ich vor, partielle Ansichten aus der Gleichung zu entfernen und einfach einen Controller zu erhalten, um Ihr Ergebnis auf der Grundlage der Variablen zurückzugeben, die Sie senden. Sobald Sie das funktioniert haben, können Sie sich mit der Ästhetik beschäftigen.

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 });
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X