【问题标题】:List<model> doesn't contain a definition and no accessible extension methodList<model> 不包含定义且没有可访问的扩展方法
【发布时间】:2023-01-19 04:25:42
【问题描述】:

我在这条线上收到错误:

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

错误详情:

List&lt;MyModel&gt; 不包含 FirstName 的定义并且没有可访问的扩展方法 FirstName 接受第一个参数 可以找到 List&lt;MyModel&gt; 类型的

我检查了我的MyModel 类,它确实有FirstName 属性。

这条线上没有错误,这很奇怪

@Html.DisplayFor(modelItem => item.FirstName)

控制器类:

    // GET: MyController/DisplayData
    public async Task<IActionResult> DisplayData()
    {
        try
        {
            IQueryable<MyModel> query = await _services.Get_All_Data();
            List<MyModel> myData = await query.AsNoTracking().ToListAsync();

            return View(myData);
        }
        catch
        {
            return View();
        }
    }

查看(DisplayData类):

@model List<MyModel>

@{
     ViewData["Title"] = "DisplayData";
 }

<h1>DisplayData</h1>

<table class="table">
    <thead>
         <tr>
            <th>
                @Html.DisplayNameFor(model => model.FirstName)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.LastName)
            </th>
             <th></th>
        </tr>
   </thead>
   <tbody>
   @foreach (var item in Model) {
         <tr>
            <td>
                @Html.DisplayFor(modelItem => item.FirstName)
           </td>
            <td>
                @Html.DisplayFor(modelItem => item.LastName)
            </td>
            <td>
                @Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) |
                @Html.ActionLink("Details", "Details", new { /* id=item.PrimaryKey */ }) |
                @Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ })
            </td>
        </tr>
}
    </tbody>
</table>

【问题讨论】:

    标签: c# asp.net-core asp.net-core-mvc


    【解决方案1】:

    因为一篮苹果不是苹果。还有一个列表MyModel 不是 MyModel

    要使用该属性,请深入查看列表中的一个项目:

    @Html.DisplayNameFor(model => model.First().FirstName)
    

    (除非有什么改变,这甚至应该适用于空列表。虽然直觉上人们会期望 .First() 上没有内容的列表出现错误,但框架在内部只是使用它以某种方式反映属性名称而不是实际上调用列表上的查询。)

    【讨论】:

      猜你喜欢
      • 2022-01-21
      • 2020-10-06
      • 2019-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-18
      • 1970-01-01
      相关资源
      最近更新 更多