2009-03-16 8 views
1

Je développe un projet d'apprentissage avec ASP.NET MVC.I ont une page qui répertorie les livres enregistrés des utilisateurs et je veux afficher des livres dans deux formats comme celui-ciASP.NET MVC: Affichage des résultats sur différents même vue

  • normal Liste -> Afficher Image de, titre, nombre de pages, ... Auteur

  • Liste détaillée ---> Afficher seulement Titre livre, Auteur, nombre de pages en format HTML Tableau
    format

donc j'ai deux pages de vue Books.aspx, BookDetails.aspx. Un pour la liste normale, un pour la liste détaillée mais j'ai une action de contrôleur qui renvoie des livres de la base de données et peut renvoyer des résultats seulement à une page. Dois-je inclure un paramètre et vérifier le paramètre pour retourner la liste à une autre vue ou existe-t-il un meilleur moyen de le faire? Comment puis-je utiliser la même action du contrôleur pour afficher deux vues?

+0

« Une pour la liste normale, pour une liste détaillée mais j'ai une action de contrôleur qui retourne des livres de base de données et peuvent retourner les résultats à une page. » <- Pourquoi est-ce? – ChadT

+0

Ok, je peux créer deux actions de contrôleur une pour la liste détaillée une pour la liste normale mais je ne veux pas dupliquer le même code dans deux endroits – mcaaltuntas

+0

créez une méthode qui récupère les données de livre et appelle cela de chaque action ... – roryf

Répondre

1

Regardez en utilisant une vue partielle et créer des actions de contrôleur pour les

public ActionResult NormalList{ 
    ViewData["normalList"] = //db retrieval code; 
    return View("NormalList"); 
} 

public ActionResult DetailedList{ 
    ViewData["detailedList"] = //db retrieval code; 
    return View("DetailedList"); 
} 

dans votre page

<%= Html.RenderPartial("NormalList", ViewData)%> 


<%= Html.RenderPartial("DetailedList", ViewData)%> 

et dans votre partie

<%foreach(var item in (IEnumerable)ViewData["normalList"]){%> 
//blah blah blah 
<%}%> 
2

Il suffit de passer le nom de la vue:

return View("Books", bookList); 

... ou ....

return View("BookDetails", bookList); 
Questions connexes