2010-06-15 5 views
2

Je commence juste mon parcours dans ASP.Net MVC et j'ai une question à propos de quelque chose avant de me creuser trop profondément.Maintenance de la chaîne de requête dans ASP.Net MVC

J'ai une table, qui est paginée, et j'ai 2 contrôles au-dessus de la table:

  • Dropdown qui définit l'ordre des résultats et bouton Appliquer à côté
  • Textbox qui définit un filtre et appliquent bouton à côté

ce que je dois réaliser que si l'utilisateur change l'ordre ou ajoute un I filtre feu d'un appel AJAX à mon action l ike tels: /Membres/Utilisateurs sort = valeur & filtre = valeur & page = pagenumber?. Donc, mon action du contrôleur est:

// GET Membership/Users?sort=&filter=&page= 
    public ActionResult Users(string sort, string filter, string page) 

J'ai donc 3 questions:

  • Est-ce la bonne approche?
  • Quelle serait la meilleure façon de s'assurer que la chaîne de requête est maintenue, en gardant à l'esprit que l'action sera presque toujours appelée par les fonctions Jquery/Ajax?
  • Si je voulais lier directement à cette action en passant les arguments aurais-je besoin de coder en dur le querystring?

Merci

Répondre

2

Vous pouvez définir une nouvelle route dans le format Membership/Users/{sort}/{filter}/{page}. Toutefois, si les paramètres sont facultatifs, je vous suggère de laisser tel quel et de ne pas définir de route. Lorsque vous passez à travers les chaînes, elles seront simplement passées à zéro si, pour une raison ou pour une autre, aucune chaîne de requête n'est passée, votre action devrait gérer ceci et restituer une vue.

+0

David, merci beaucoup. Des pensées sur ma 2ème question? :-) – Mantorok

+0

Désolé, j'ai jeté un coup d'oeil sur le reste. Je dirais qu'il est impossible de coupler correctement vos appels côté client aux services Web. Vous pouvez définir votre propre classe dans jQuery pour stocker les données, mais je dirais que vous devez utiliser beaucoup cette action pour que cela en vaille la peine. Essentiellement, vous devrez coder en dur l'URL avec des chaînes de requête ou dans un format que le moteur de routage MVC reconnaîtra, si vous allez toujours passer ces paramètres et utiliser l'itinéraire plus d'une fois dans l'application, puis Je suggère d'utiliser la route. –

Questions connexes