类型参数不能从用法中推断出来

Web开发狼

我有一个MVC视图和控制器,为了能够提取正确的信息以显示在视图上,我使用了linq查询并将其转换为列表以供视图使用,但是由于更改了类型从IEnumerable列出,我无法使用@ Html.DisplayNameFor(model => model.Name)获取属性的显示名称。

查看代码:

@model List<UKAIS.Common.Brands.Data.Opex>

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table class="table">
    <tr>
        <th>
            @Html.DisplayNameForModel()
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Name)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Description)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.BulletPoints)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.ImageUrl)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.PolicyWordingLink)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Price)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.OpexType)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.SortOrder)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.MustSelectOption)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Selected)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.DateCreated)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.DateModified)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.ModifiedBy)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.RowVers)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.Active)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.SubHeading)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.VariantKeyText)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.VariantOptionText)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.OpexGroup.Name)
        </th>
        <th></th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Code)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Name)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Description)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.BulletPoints)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.ImageUrl)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.PolicyWordingLink)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Price)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.OpexType)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.SortOrder)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.MustSelectOption)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Selected)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.DateCreated)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.DateModified)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.ModifiedBy)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.RowVers)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Active)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.SubHeading)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.VariantKeyText)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.VariantOptionText)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.OpexGroup.Name)
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id=item.Id }) |
            @Html.ActionLink("Details", "Details", new { id=item.Id }) |
            @Html.ActionLink("Delete", "Delete", new { id=item.Id })
        </td>
    </tr>
}

</table>

控制器代码:

//Returns Opex list dependant on brand
public async Task<ActionResult> Index(Guid? id)
{
    if (id == null)
    {
        var opexes = db.Opexes.Include(o => o.OpexGroup).ToList();
        return View(opexes);
    }
    else
    {
        var opexes = (from o in db.Opexes
            join b in db.BrandOpexes on o.Id equals b.OpexId
            where b.BrandId == id
            select new Opex()
            {
                Active = o.Active,
                Code = o.Code,
                BulletPoints = o.BulletPoints,
                ImageUrl = o.ImageUrl,
                PolicyWordingLink = o.PolicyWordingLink,
                Description = o.Description,
                Price = o.Price,
                OpexType = o.OpexType,
                SortOrder = o.SortOrder,
                MustSelectOption = o.MustSelectOption,
                Selected = o.Selected,
                DateCreated = o.DateCreated,
                DateModified = o.DateModified,
                ModifiedBy = o.ModifiedBy,
                RowVers = o.RowVers,
                SubHeading = o.SubHeading,
                VariantKeyText = o.VariantKeyText,
                VariantOptionText = o.VariantOptionText,
            }).ToList();
        return View(opexes);

    }

}
blogprogramisty.net

您正在List<UKAIS.Common.Brands.Data.Opex>模型中使用,但您使用的模型类似于在此模型中输入DisplayNameFor(DisplayName(不知道要显示哪个元素))

更改此:

@Html.DisplayNameFor(model => model.Name)

为此(类似这样)

@Html.DisplayNameFor(model => model[0].Name)

最好的方法是使用模型中的一项创建变量

var displayItem = model[2];

 @Html.DisplayNameFor(displayItem => displayItem.Name)

帮助链接:

DisplayNameFor()来自模型中的List <Object>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

LinqtoSQL SelectMany类型参数不能从用法中推断出来

来自分类Dev

TPL数据流。无法将BatchBlock附加到ActionBlock。不能从用法中推断出类型实参?

来自分类Dev

无法从用法中推断出开放通用类型参数

来自分类Dev

无法从用法中推断出方法的类型参数

来自分类Dev

如果类型参数约束指定类型,为什么不能从用法推断类型参数?

来自分类Dev

无法从用法中推断出方法“”的类型参数。尝试显式指定类型参数

来自分类Dev

无法从用法中推断出方法的类型参数。尝试显式指定类型参数

来自分类Dev

无法从用法中推断出方法的类型参数。尝试显式指定类型参数

来自分类Dev

无法从Model的用法推断出method的类型参数

来自分类Dev

当使用带有IEnumerable值的Dictionary时,无法从用法中推断出方法的类型参数

来自分类Dev

自定义icomparer错误-无法从用法中推断出类型参数

来自分类Dev

为什么不能从与委托方法相同的泛型定义的参数中推断出泛型?

来自分类Dev

不能推断出可选的泛型类型的参数

来自分类Dev

为什么此方法不能从签名中的Predicate <T>参数推断其参数类型?

来自分类Dev

为什么此方法不能从签名中的Predicate <T>参数推断其参数类型?

来自分类Dev

无法从用法推断出 method … 的类型参数。尝试明确指定类型参数

来自分类Dev

为什么不能从受约束的通用集合中推断出接口?

来自分类Dev

不能快速推断出通用参数

来自分类Dev

没有推断出类型参数

来自分类Dev

为什么不能通过初始化的参数推断出通用结构类型?

来自分类Dev

TypeScript:从错误的参数推断出通用函数类型参数

来自分类Dev

如何从参数列表中推断出函数对象的返回类型?

来自分类Dev

打字稿无法推断出来自回调函数的类型

来自分类Dev

如何获得警告FS1125(通用类型'xxx'的实例丢失,并且无法从...推断出来)?

来自分类Dev

无法从用法推断SelectMany类型参数

来自分类Dev

如何从使用中推断出参数值?

来自分类Dev

在Swift 2.2中无法正确推断出可选类型

来自分类Dev

如何在此代码段中推断出类型?

来自分类Dev

无法从用法推断出SelectMany

Related 相关文章

  1. 1

    LinqtoSQL SelectMany类型参数不能从用法中推断出来

  2. 2

    TPL数据流。无法将BatchBlock附加到ActionBlock。不能从用法中推断出类型实参?

  3. 3

    无法从用法中推断出开放通用类型参数

  4. 4

    无法从用法中推断出方法的类型参数

  5. 5

    如果类型参数约束指定类型,为什么不能从用法推断类型参数?

  6. 6

    无法从用法中推断出方法“”的类型参数。尝试显式指定类型参数

  7. 7

    无法从用法中推断出方法的类型参数。尝试显式指定类型参数

  8. 8

    无法从用法中推断出方法的类型参数。尝试显式指定类型参数

  9. 9

    无法从Model的用法推断出method的类型参数

  10. 10

    当使用带有IEnumerable值的Dictionary时,无法从用法中推断出方法的类型参数

  11. 11

    自定义icomparer错误-无法从用法中推断出类型参数

  12. 12

    为什么不能从与委托方法相同的泛型定义的参数中推断出泛型?

  13. 13

    不能推断出可选的泛型类型的参数

  14. 14

    为什么此方法不能从签名中的Predicate <T>参数推断其参数类型?

  15. 15

    为什么此方法不能从签名中的Predicate <T>参数推断其参数类型?

  16. 16

    无法从用法推断出 method … 的类型参数。尝试明确指定类型参数

  17. 17

    为什么不能从受约束的通用集合中推断出接口?

  18. 18

    不能快速推断出通用参数

  19. 19

    没有推断出类型参数

  20. 20

    为什么不能通过初始化的参数推断出通用结构类型?

  21. 21

    TypeScript:从错误的参数推断出通用函数类型参数

  22. 22

    如何从参数列表中推断出函数对象的返回类型?

  23. 23

    打字稿无法推断出来自回调函数的类型

  24. 24

    如何获得警告FS1125(通用类型'xxx'的实例丢失,并且无法从...推断出来)?

  25. 25

    无法从用法推断SelectMany类型参数

  26. 26

    如何从使用中推断出参数值?

  27. 27

    在Swift 2.2中无法正确推断出可选类型

  28. 28

    如何在此代码段中推断出类型?

  29. 29

    无法从用法推断出SelectMany

热门标签

归档