如何将表头的显示名称传递给部分视图

时间:2019-07-19 09:10:54

标签: asp.net-core asp.net-mvc-partialview

我试图将表头名称传递给局部视图,因为我想为每个表头显示一些排序和搜索控件。

这是我的部分观点:

@model string

<div class="dropdown">
    <button class="btn btn-secondary dropdown-toggle table-header-button" type="button" data-toggle="dropdown">@Model</button>
    <div class="dropdown-menu">
        <a class="dropdown-item" href="#"><img src="/icons/arrow-up.svg" alt="ascending"> Aufsteigend</a>
        <a class="dropdown-item" href="#"><img src="/icons/arrow-down.svg" alt="descending"> Absteigend</a>
        <nav class="dropdown-item navbar navbar-light bg-light">
            <input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
        </nav>
    </div>
</div>

这是我尝试将模型传递到局部视图的方式:

<div class="table-responsive">
    <table class="table">
        <thead>
            <tr>
                <th>
                    <partial name="_TableHeader" for="@Html.DisplayNameFor(model => model.FirstName)" />                    
                </th>
                ...
            </tr>
        <thead>
    </table>
</div>

但是,当我这样做时,我在表视图中总是收到错误"Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions."。我尝试为部分视图创建类型化的模型,但是产生了相同的错误。

那么如何摆脱这个错误?

1 个答案:

答案 0 :(得分:1)

尝试使用部分标记帮助器的model属性,如下所示

 <partial name="_TableHeader" model="@Html.DisplayNameFor(model=>model.FirstName)" />

对于Partial Tag Helper,您可以参考以下链接: https://www.learnrazorpages.com/razor-pages/tag-helpers/partial-tag-helper