J'ai un tableau de données qui contient des articles.asp.net mvc aide avec le routage
ive créé des vues/formulaires CRUD standard et possède également un système de pagination.
par exemple au moment que j'ai urls est comme ça:
// GET: /News/
// /News/Page/2
articles News peuvent être archivés (une valeur booléenne dans la db)
je veux une URL pour la carte aux données archivées uniquement dans la db ou données non archivées.
Par exemple/Actualités/Archivé/Page/2 doit correspondre à la page 2 des éléments archivés uniquement.
et/News/Page/2 doit correspondre à la page 2 des éléments non archivés.
Que dois-je faire en asax global pour y parvenir. et que devrait être la signature de la méthode de l'indice?
//Signature in controller
public ActionResult Index(int? page)
//Route for paging
routes.MapRoute(
"NewsArticles",
"News/Page/{page}",
new { controller = "News", action = "Index" }
);
Je déconseille d'utiliser la même méthode d'action pour contrôler deux chemins de données différents. Cela tend à créer une logique plus complexe dans la méthode d'action, ce qui est déconseillé pour les meilleurs modèles MVC - la méthode d'action doit être logique et indépendante des erreurs, et simplement transmettre les paramètres dans le domaine, et transmettre toutes les données retournées dans un Afficher (ou renvoyer toutes les erreurs du domaine (le cas échéant)). – eduncan911
Je ne suis pas d'accord. Le contrôleur est chargé de communiquer avec le modèle et d'obtenir des résultats. Je ne vois pas comment cela va à l'encontre du modèle MVC. Le PO a déclaré que le seul facteur distinctif entre les résultats archivés et non archivés est un champ à un seul bit dans la base de données. Je ne vois pas de mal à transmettre cela à votre modèle pour faire basculer les résultats que vous obtenez. –
En outre, ce n'est pas deux "chemins de données" différents comme vous l'avez souligné ci-dessus. Dans votre solution, l'OP doit soit créer deux Views, soit passer le nom de la méthode View à la méthode View(), et dans les deux cas ses objets modèles seront identiques pour les deux méthodes de contrôleur. Il me semble juste ajouter du code pour me coder ... –