还在学习MVC3,EF。现在我正在连接到 MySql,但我相信这不相关。为简单起见,我决定为我的测试应用程序使用一个数据库,并且我添加了一个类别来区分数据。例如,我有新闻、事件、信息和页面类别。现在,当涉及到在主页的视图中列出内容时,我想列出最新 5 条新闻(新闻类别)、最新 5 条事件(事件类别)、欢迎文本(信息类别)。我已经能够创建部分视图以在主页的不同部分列出这些视图。但我觉得这样做是错误的,因为在每个 PartialViews 中,我一遍又一遍地查询同一个表,并且只是用where cat=....
在 LINQ 查询中。
您能否确认这是否应该是惯例,或者是否有更好的方法来做到这一点。
您可以执行以下操作:
控制器:
public ActionResult Home()
{
IEnumerable<MyDateRecords> myData = LinqQueryToGetAllTheDataUnFiltered();
ViewData.Model = new MyViewData { MyData = myData; }
return 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"); } }
}
View:
@model MyViewModel
@Html.Partial("NewsPartial", Model.News)
@Html.Partial("EventsPartial", Model.Events)
Partial:
@model IEnumerable<MyDataRecord>
这样我们只查询一次数据,然后将不同的集合传递给每个部分
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)