首页 / C# / c# – 嵌套查询MVC LINQ
c# – 嵌套查询MVC LINQ
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 嵌套查询MVC LINQ,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1750字,纯文字阅读大概需要3分钟。
内容图文
我是MVC和LINQ的新手.目前我在项目上面临困难并决定张贴.
我希望实现的MVC-View
Cut
----------------------------------
1 20%
2 40%
Color
----------------------------------
3 30%
4 50%
Perm
----------------------------------
5 10%
这是我的数据表的一些示例
ID Offer Service
-------------------
1 20% Cut
2 40% Cut
3 30% Color
4 50% Color
5 10% Perm
我的控制器:
var services = (from ps in db.PS
select ps).Distinct().ToArray();
ViewBag.services = services;
我的看法:
@foreach (var item in ViewBag.services){
<h3 class="page-header">
@item
</h3>
//Table TAG INSERT Here: ID, Offer, Service
}
问题来了,我不知道如何根据自己的服务(例如:Cut,Color,Perm)在视图中将数据从DB填充到视图中
我正在考虑根据我的Controller中的服务来存储数据:
foreach (var i in services){
var servicesdata = (from ps in db.PS
where ps.Service == i
select ps).ToArray();
}
我想知道我可以将已经根据服务的服务数据推送到某种数组中,以便我可以填充到视图中吗?
解决方法:
您可以使用.GroupBy()子句按Service对数据进行分组.首先创建视图模型以表示要在视图中显示的内容
public class OfferVM
{
public int ID { get; set; }
[DisplayFormat(DataFormatString = "{0:P0}")]
public float Offer { get; set; } // assumes you store this as float in the db
}
public class ServiceVM
{
public string Name { get; set; }
public IEnumerable<OfferVM> Offers { get; set; }
}
然后在控制器中
IEnumerable<ServiceVM> model = db.PS.GroupBy(x => x.Service).Select(x => new ServiceVM()
{
Name = x.Key,
Offers = x.Select(y => new OfferVM()
{
ID = y.ID,
Offer = y.Offer
})
});
return View(model);
并在视图中
@model IEnumerable<ServiceVM>
@foreach (var service in Model)
{
<h2>@service.Name</h2>
foreach (var item in service.Offers)
{
<span>@item.ID</span>
<span>@Html.DisplayFor(m => item.Offer)</span>
}
}
内容总结
以上是互联网集市为您收集整理的c# – 嵌套查询MVC LINQ全部内容,希望文章能够帮你解决c# – 嵌套查询MVC LINQ所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。