gpt4 book ai didi

c# - MVC3 局部 View

转载 作者:行者123 更新时间:2023-12-03 20:50:36 26 4
gpt4 key购买 nike

仍在学习 MVC3、EF。现在我正在连接到 MySql,但我相信这无关紧要。为简单起见,我决定为我的测试应用程序使用一个数据库,并且我包含了一个类别来区分数据。例如,我有一个新闻、事件、信息和页面类别。现在,当谈到在主页上列出 View 中的内容时,我想列出最新的 5 个新闻项目(新闻类别)、最新的 5 个事件(事件类别)、欢迎文本(信息类别)。我已经能够创建部分 View 以在主页的不同部分列出这些 View 。但我觉得这样做是错误的,因为在每个 PartialView 中,我一遍又一遍地查询同一个表,只是在 LINQ 查询中使用 where cat=.... 进行过滤。您能否确认是否应该这样做,或者是否有更好的方法来做到这一点。

最佳答案

您可以执行以下操作:

Controller :

public ActionResult Home()
{
IEnumerable<MyDateRecords> myData = LinqQueryToGetAllTheDataUnFiltered();
ViewData.Model = new MyViewData { MyData = myData; }
return View();
}

View 模型类:

public class MyViewData
{
List<MyDataRecords> MyData { get; set; }
List<MyDataRecords> News { get { return MyData.Where(m => m.Category = "News"); } }
List<MyDataRecords> Events { get { return MyData.Where(m => m.Category = "Events"); } }
}

查看:

@model MyViewModel

@Html.Partial("NewsPartial", Model.News)
@Html.Partial("EventsPartial", Model.Events)

部分:

@model IEnumerable<MyDataRecord>

这样我们只查询一次数据,然后将不同的集合传递给每个部分

关于c# - MVC3 局部 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8663190/

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