剃刀Html.DisplayNameForInnerType为IEnumerable的视图模型

问题描述 投票:2回答:2

我有我的观势必IEnumerable<MyViewModel>

MyViewModel类标注有这样的显示名称:

 [DisplayName("My other Display Name")]
    public class MyViewModel
    {
     ...
    }

在我的意见被直接绑定到“MyViewModel”我用Html.DisplayNameForModel()和它的作品。

对于IEnumerable的情况下......我想Html.DisplayNameForInnerType...可以使用,但遗憾的是我不能帮助自己找到这里需要表达。

任何人都可以如何使用Html.DisplayNameForInnerType一个例子帮助吗?

UPDATE1:要在评论回答一个问题:这是关于ASP.Net 1.1核心Html.DisplayNameForInnerType<>

不过,我coulnd't的MS文档中找到它。

c# asp.net-mvc razor asp.net-core annotations
2个回答
0
投票

还有就是编写一个自定义的HTML帮助的一种方式,但最简单的方法是使用临时参数型号:

    [DisplayName("My other Display Name")]
    public class MyViewModel
    {
        [DisplayName("My other Display Name")]
        public string DisplayNameProp { get; set; }
        public string Name { get; set; }
    }

并查看:

@model IEnumerable<MyViewModel>

<table>
    @foreach (var item in Model)
    {
        <tr>
            <td>@Html.DisplayNameFor(x => x.DisplayNameProp)</td>
            <td>@item.Name</td>
        </tr>

    }
</table>

0
投票

比方说,你有以下型号:

public class MyViewModel
{
    [Display(Name = "My Id")]
    public int Id { get; set; }
    [Display(Name = "My name")]
    public string Name { get; set; }
}

在你看来,你可以使用Html.DisplayNameForInnerType像这样:

@model IEnumerable<MyViewModel>
<table>
    <thead>
        <tr>
            <th>@Html.DisplayNameForInnerType((MyViewModel item) => item.Id)</th>
            <th>@Html.DisplayNameForInnerType((MyViewModel item) => item.Name)</th>
        </tr>
    </thead>
    <tbody>
    @foreach (var item in Model)
    {
        <tr>
            <td>@item.Id</td>
            <td>@item.Name</td>
        </tr>
    }
    </tbody>
</table>
© www.soinside.com 2019 - 2024. All rights reserved.