Frage

Ich versuche, eine Verbindung zu schaffen, um die Suchergebnisse zu filtern.

    <%= Html.ActionLink("Filter Results", "Index", new { page = Model.RestaurantList.PageIndex(), searchText = Model.SearchText, useFilter = true, filterOption = Model.FilterOption, filterText = Model.FilterText }, null)%>

Die Controller-Definition ist als solche

 public ActionResult Index(int? page, string searchText, bool useFilter, string filterText, string filterOption)

Allerdings, wenn ich debuggen diese die Werte nicht richtig, auch der useFilter Variable gesetzt.

Mein Link gemacht wird localhost / home / index / true? Page = 0

Alle Ideen, wie dieses Problem beheben?

War es hilfreich?

Lösung

Das Codesegment sieht gut aus. Ich denke, es gibt zwei mögliche Fehler:

  1. Falsche Routeninformationen: Überprüfen Sie die routes.MapRoute (...) ruft in global.ascx.cs / vb-Datei, um sicherzustellen, eine Route für Heim # Index Aktion richtig konfiguriert
  2. Falsche Steuerung: versuchen, die Überlastung von Action verwenden, die explizit einen Controller gibt

Wenn Sie immer noch nicht leisten können zu arbeiten, möchten Sie vielleicht weitere Informationen veröffentlichen (wie Route Mapping-Code, Name des View / Controller)

Andere Tipps

Es sieht aus wie es sollte funktionieren.

Haben Sie sich vergewissert, dass die Modellfelder Sie auf die Action tatsächlich Daten enthalten geben werden?

  

Allerdings, wenn ich debuggen diese die Werte nicht richtig, auch den useFilter Variable gesetzt.   Mein Link gemacht wird localhost / home / index / true? Page = 0

Ich denke, Ihr useFilter Parameter tatsächlich wiedergegeben wird. Es liegt an der Strecke abgebildet, denke ich.

Versuchen Sie, einen fest codierten Wert für den Such auf

  

Wenn es auftaucht, dann setzen Sie nicht Ihr Modell in der Steuerung.

Ich hatte eine ähnliche Situation.

So etwas wie folgt aus:

Html.ActionLink("Click me", "Index", "Student", 
        { ID = theclass.StudentID }, null) 

macht immer als

localhost/myapp/Student/Index/1234

Während ich experimentiere, bemerkte ich, dass Index Teil der URL verschwunden, wenn ich die Parameternamen von ID zu so etwas wie IDX ändern

localhost/myapp/Student/?IDX=1234

Es stellt sich heraus, dass der Parametername ID wegen der Standardroute Eintrag in Global.asax.cs Sonder ist (die RESTful-Business-Objektzugriffsmuster einrichtet)

Um dies zu umgehen, hörte ich einfach Index mit einer ID zu nehmen und definiert stattdessen eine andere Methode wie folgt aus:

public ActionResult Detail(int ID)

Immerhin pro Restfull Design-Prinzip ist Index bedeutet für die Ansicht „Liste der Business-Objekte“ oder eine Art Sammlung von Business-Objekt, nicht ein einzigen Business-Objekt. So Objekt Geschäft vorbei ID Index ist eine Art, das Muster zu verletzen.

Statt der Arm von Twist und zwingen mein umständlich Design, wechselte ich auf natürliche Art und Weise.

Ich glaube, die beste Praxis Index Einstiegspunkt für die Gestaltung ist es zu halten Parameter weniger oder übergeben nur die Filtration / Sortierparameter.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top