我尝试使用其他视图中的局部视图制作表格。
我想要播放的视图内容:
@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行?
吨
答案 0 :(得分:0)
您应该在模型中添加一个新属性,并显示最大行数。 之后,您可以在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})
答案 1 :(得分:0)
你可以在控制器动作或剃须刀中使用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>
}