gpt4 book ai didi

asp.net-mvc - ASP.Net MVC将多个参数传递给 View

转载 作者:行者123 更新时间:2023-12-04 04:01:15 24 4
gpt4 key购买 nike

在ASP.Net MVC中,我想根据renderview查询字符串参数来渲染不同的局部 View 。

因此,为用户提供了选择按缩略图或按细节查看产品的便利。

我可以访问 Controller 中的选定参数,但是我不知道该怎么做,或者是否应该将其与产品列表一起传递给 View ,以便该 View 可以实现确定显示哪个局部 View 的逻辑?

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>&nbsp;<a href="?renderview=1">details</a></p>


<% if (renderview == 1)
{%>
<% Html.RenderPartial("ProductsDetailList"); %>
<% }
else
{ %>
<% Html.RenderPartial("ProductsThumbnailList"); %>
<% } %>

</asp:Content>

最佳答案

您的 View 应类似于:

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<Models.MyModel>" %>

然后在MyModel中

公开属性:
public bool RenderDetailView {get;set;}

在您的 Controller Action 中:
public ActionResult Products(string id, int? renderview)
{
var products = productRepository.GetProducts(id).ToList();
return View("Products", new MyModel {RenderDetailView = renderview.HasValue});
}

然后在您的 View 中进行检查,如下所示:
<% if (Model.RenderDetailView)

理想情况下, View 需要呈现的所有属性,参数或数据都应该是模型的一部分。

希望对您有所帮助。

关于asp.net-mvc - ASP.Net MVC将多个参数传递给 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2199440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com