我正在尝试使用部分视图从另一个视图制作表。
我想访问的视图内容:
@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行?
t
您可以在控制器动作或剃须刀中使用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>
}
您应该将新属性添加到模型中,并显示最大行。之后,您可以在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})