En ASP.Net MVC Me gustaría mostrar una vista parcial diferente según el parámetro de cadena de consulta renderview.ASP.Net MVC Pasar parámetros múltiples a una vista
Por lo tanto, brinda la posibilidad al usuario de elegir ver los productos por miniatura o por detalles.
Tengo acceso al parámetro elegido en el controlador pero no sé cómo hacerlo o si debería pasar esto a la vista junto con la lista de productos para que la vista pueda implementar la lógica para decidir qué vista parcial ¿monitor?
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>
también la lista de productos también será la parte de MyModel. –
Hola Nitin, comencé a seguir tu respuesta y he creado ViewModel utalizando el método público ProductsViewModel (bool renderDetailView, List productsList) {this.RenderDetailView = renderDetailView; this.ProductsList = productsList;} y lo paso a la página de Productos con Return View ("Productos", nuevos ProductsViewModel (true, productos)); pero por alguna razón, la línea si Model.RenderDetailView nunca se golpea, todo el resto de la página se procesa pero cualquier código dentro de <% %> no recibe ningún golpe. Aso puedo pasar y ver que se completa el ProductsViewModel. ¿Alguna sugerencia? –
¿Puede mostrar la vista y el código del controlador? –