ASP.NET MVC: URL-Routing vs Querystring
Ich habe eine Seite weitergeleitet wie /Comments/Search/3
wo ich Suche und Anzeige der Kommentare, der thread "3".
Ich bin das hinzufügen einer Sortierfunktion (nach Datum, Autor, etc.). Was ist der beste Weg, damit umzugehen? /Comments/Search/3/Sort/Author
oder /Comments/Search/3?sort=author
?
Wie kann ich automatisch Griff den querystring sort=Autor, der als parameter in MVC?
Dank
InformationsquelleAutor der Frage pistacchio | 2009-06-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich lieber: /Kommentare/Suche/3?sort=Autor. Der querystring ist ein guter Ort, um pass in den programmatischen Parametern, vor allem, wenn die parameter (wie in diesem Fall) ist nicht wichtig für SEO Zwecke. Wenn der parameter hatte einige semantische Bedeutung als Suchbegriff die erste URL, die besser wäre.
In einer controller-Methode, die Sie verwenden können, so etwas wie dieses:
ASP.NET MVC wird automatisch verdrahten querystring Werte an die Parameter der Methode.
Verwenden Sie die folgende route
/Kommentare/Suche/3?sort=Autor call Suche(3, "Autor")
/Kommentare/Suche/3-Aufruf Suchen(3, null)
Beachten Sie, dass id ist obligatorisch, damit dieser url wird fehlschlagen:
/Kommentare/Search
InformationsquelleAutor der Antwort Praveen Angyan
ASP.NET MVC verarbeitet wird, automatisch in den Abfrage-string der Fall. Fügen Sie einfach ein
string sort
parameter auf Ihre Aktion.Was ist besser? Persönlich benutze ich den Pfad zur Steuerung der Inhalt angezeigt wird, und querystring zu Steuern, die Präsentation (wie es dargestellt ist, formatiert, ...). So, für die Sortierung würde ich gehen mit der querystring-Methode. Aber ich glaube nicht, dass es einen technischen Nachteil in einen Ansatz.
InformationsquelleAutor der Antwort Mehrdad Afshari
Ihre beste Wette ist, um eine routing-Regel zu umgehen. Es ist eine praktische Artikel hier:
http://aspalliance.com/1525_ASPNET_MVC_Framework_Part_2_URL_Routing.2
Dann Ihre URL Lesen /Kommentare/Search/3/Art/Autor
InformationsquelleAutor der Antwort user75525