繁体   English   中英

部分视图ASP MVC 5 C#:如何使用部分视图获取表的一部分?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM