Dans ASP.Net MVC, je souhaite afficher une vue partielle différente en fonction du paramètre chaîne de requête rendu.ASP.Net MVC Passage de plusieurs paramètres à une vue
Par conséquent fournissant la possibilité pour l'utilisateur de choisir de voir les produits par vignette ou par des détails. J'ai accès au paramètre choisi dans le contrôleur mais je ne sais pas comment ou, si je devrais passer cela à la vue avec la liste des produits afin que la vue puisse implémenter la logique pour décider quelle vue partielle à afficher?
public ActionResult Products(string id, int? renderview)
{
var products = productRepository.GetProducts(id).ToList();
return View("Products", products);
}
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<MLBWebRole.Models.Product>>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Products
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Products</h2>
<p>This is the Products page</p>
<p><a href="?renderview=0">thumbnails</a> <a href="?renderview=1">details</a></p>
<% if (renderview == 1)
{%>
<% Html.RenderPartial("ProductsDetailList"); %>
<% }
else
{ %>
<% Html.RenderPartial("ProductsThumbnailList"); %>
<% } %>
</asp:Content>
Alsó ProductList sera également la partie de MyModel. –
Salut Nitin, j'ai commencé à suivre votre réponse et j'ai créé le ViewModel en utilisant la méthode public ProductsViewModel (bool renderDetailView, Liste productsList) {this.RenderDetailView = renderDetailView; this.ProductsList = productsList;} et passez-le à la page Products avec retour View ("Produits", nouveau ProductsViewModel (true, produits)); mais pour une raison quelconque, la ligne if Model.RenderDetailView n'est jamais atteinte - tout le reste de la page est rendu mais aucun code au sein de <% %> n'est touché. Aso je peux passer à travers et voir le ProductsViewModel étant rempli. Aucune suggestion? –
Pouvez-vous s'il vous plaît montrer votre vue et le code du contrôleur? –