[英]partial view ASP MVC 5 C#: how to get part of the table using partial view?
我正在尝试使用另一视图的局部视图制作表。
我要显示的视图的内容:
@model Agro1.ModelView.MessageViewModel
@using Agro1.Models
<span style="color:darkgreen">Messages</span>
<br />
<table>
<tr>
<td>Subject</td>
<td>Content</td>
<td>Farmer Email</td>
</tr>
@{
foreach (Message obj in Model.messages)
{
<tr>
<td>@obj.Subject</td>
<td>@obj.Content</td>
<td>@obj.FarmerEmail</td>
</tr>
}
}
</table>
在另一个视图中,我只想显示此表的前5行。
现在视图中的代码如下所示:
@Html.Partial("DisplyaMessages",Model)
它显示了完整的表格。 我怎样才能只显示前5行?
Ť
您应该在模型中添加一个新属性,并显示要显示的最大行数。 之后,您可以在foreach期间检查此属性。
@model Agro1.ModelView.MessageViewModel
@using Agro1.Models
<span style="color:darkgreen">Messages</span>
<br />
<table>
<tr>
<td>Subject</td>
<td>Content</td>
<td>Farmer Email</td>
</tr>
@{
var x = 0;
foreach (Message obj in Model.messages)
{
if (Model.MaxRows > 0 && x > Model.MaxRows) break;
<tr>
<td>@obj.Subject</td>
<td>@obj.Content</td>
<td>@obj.FarmerEmail</td>
</tr>
x++;
}
}
</table>
您可以调用部分创建新模型,如下所示:
@Html.Partial("DisplyaMessages", new MessageViewModel { MaxRows = 5, messages = Model.messages})
您可以在控制器操作或剃刀中使用linq语法.take(5)。
您的剃须刀代码如下所示:
@{
foreach (Message obj in Model.messages.take(5))
{
<tr>
<td>@obj.Subject</td>
<td>@obj.Content</td>
<td>@obj.FarmerEmail</td>
</tr>
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.