Asp.net MVC - 查询多个网格
Asp.net MVC - where query for multiple grids
更新 2
感谢 Thomas Boby 和 Sam C。他们都对这个问题给出了很好的答案和完美的解决方案!
这是我的问题:我希望我的视图显示四个 grids/columns 和不同的文本框。例如,当我创建 Post 消息时,我为其添加了优先级 1-5。
现在,我只想遍历 "Priority = X" 所在的每一列,因此 1 显示在一列上,优先级为 2 的 Post 显示在另一列上。你明白了吗?还是我真的不擅长解释这个。
型号class:
public enum Priority
{
First = 1,
Second = 2,
Third = 3,
Forth = 4,
Fifth = 5,
}
public class Post
{
public int postId { get; set; }
public string postMsg { get; set; }
public Priority priority { get; set; }
}
在我看来我想这样做:
@foreach (var item in Model.Posts) // Where Model.priority = 1
{
<div class="col-md-2">
<div class=" panel panel-default">
@Html.DisplayFor(modelItem => item.postMsg, new { @class = "panel-body" })
</div>
</div>
}
@foreach (var item in Model.Posts) // Where Model.priority = 2
{
<div class="col-md-2">
<div class=" panel panel-default">
@Html.DisplayFor(modelItem => item.postMsg, new { @class = "panel-body" })
</div>
</div>
}
问题是我不知道如何进行 "Where Model.priority = 1" 查询。我不确定我是否可以在 foreach?
中进行这样的查询
更新
为了让事情变得更简单:我想对不同的 div 使用不同的 "Select Where" 查询。
使用 System.Linq
类似于:
@foreach (var item in Model.Posts.Where(x => x.priority == Priority.First))
{
...
}
将遍历优先级为 1 的每个项目。
类似这样的东西???
@foreach( var p in Enum.GetValues( typeof( Priority) ).Cast< Priority >().OrderBy(x=>(int)x) ) //sorted from first priority to fifth
{
@foreach (var item in Model.Posts.Where(x=>x.Priority == p))
{
<div class="col-md-2">
<div class=" panel panel-default">
@Html.DisplayFor(modelItem => item.postMsg, new { @class = "panel-body" })
</div>
</div>
}
}
更新 2
感谢 Thomas Boby 和 Sam C。他们都对这个问题给出了很好的答案和完美的解决方案!
这是我的问题:我希望我的视图显示四个 grids/columns 和不同的文本框。例如,当我创建 Post 消息时,我为其添加了优先级 1-5。
现在,我只想遍历 "Priority = X" 所在的每一列,因此 1 显示在一列上,优先级为 2 的 Post 显示在另一列上。你明白了吗?还是我真的不擅长解释这个。
型号class:
public enum Priority
{
First = 1,
Second = 2,
Third = 3,
Forth = 4,
Fifth = 5,
}
public class Post
{
public int postId { get; set; }
public string postMsg { get; set; }
public Priority priority { get; set; }
}
在我看来我想这样做:
@foreach (var item in Model.Posts) // Where Model.priority = 1
{
<div class="col-md-2">
<div class=" panel panel-default">
@Html.DisplayFor(modelItem => item.postMsg, new { @class = "panel-body" })
</div>
</div>
}
@foreach (var item in Model.Posts) // Where Model.priority = 2
{
<div class="col-md-2">
<div class=" panel panel-default">
@Html.DisplayFor(modelItem => item.postMsg, new { @class = "panel-body" })
</div>
</div>
}
问题是我不知道如何进行 "Where Model.priority = 1" 查询。我不确定我是否可以在 foreach?
中进行这样的查询更新
为了让事情变得更简单:我想对不同的 div 使用不同的 "Select Where" 查询。
使用 System.Linq
类似于:
@foreach (var item in Model.Posts.Where(x => x.priority == Priority.First))
{
...
}
将遍历优先级为 1 的每个项目。
类似这样的东西???
@foreach( var p in Enum.GetValues( typeof( Priority) ).Cast< Priority >().OrderBy(x=>(int)x) ) //sorted from first priority to fifth
{
@foreach (var item in Model.Posts.Where(x=>x.Priority == p))
{
<div class="col-md-2">
<div class=" panel panel-default">
@Html.DisplayFor(modelItem => item.postMsg, new { @class = "panel-body" })
</div>
</div>
}
}