W ASP.Net MVC chciałbym renderować inny widok częściowy w zależności od parametru ciągu zapytania renderview.ASP.Net MVC Przekazywanie wielu parametrów do widoku
Dlatego zapewnia się użytkownikowi możliwość wyboru wyświetlania produktów według miniatur lub szczegółowych informacji.
Mam dostęp do wybranego parametru w kontrolerze, ale nie wiem jak lub, jeśli powinienem przekazać to do widoku wraz z listą produktów, aby widok mógł zaimplementować logikę do decydowania, który widok częściowy pokaz?
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>
również ProductList będzie również częścią MyModel. –
Cześć Nitin, zacząłem podążać za twoją odpowiedzią i utworzyłem ViewModel utalising the method public ProductsViewModel (bool renderDetailView, List productList) {this.RenderDetailView = renderDetailView; this.ProductsList = productsList;} i przekazanie go do strony Produkty z widokiem Return ("Produkty", nowe produktyViewView (true, produkty)); ale z jakiegoś powodu linia Model.RenderDetailView nigdy nie zostanie trafiona - cała reszta strony zostanie wyrenderowana, ale żaden kod w ciągu <% %> nie zostanie trafiony. Aso mogę przejść i zobaczyć zapełniony ProductViewModel. Jakieś sugestie? –
Czy możesz pokazać swój widok i kod kontrolera? –