【问题标题】:C# Linq with MVC, Cannot convert lambda expression to type 'string' because it is not a delegate typeC# Linq 与 MVC,无法将 lambda 表达式转换为类型“字符串”,因为它不是委托类型
【发布时间】:2021-04-08 17:00:02
【问题描述】:

所以我对 MVC 真的很陌生。我一直在为工作中的一个项目自学。

我正在尝试从我的 SQL 数据库中将我的列表打印到我的网页中,以获取一些库存项目,但我不断收到此错误:

“无法将 lambda 表达式转换为类型 'string',因为它不是委托类型”

我知道有一些表格表明添加了一些 using 语句,即使尝试了一些解决方案,我仍然遇到问题。

我的控制器如下所示:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using LinqApplication.Models;
using System.Data.SqlClient;
using System.Configuration;
using System.Data.Entity;


namespace LinqApplication.Controllers
{
    public class InventoryItemController : Controller
    {
        // GET: InventoryItem
        public ActionResult Index()
        {
            IM_importEntities import = new IM_importEntities(); //our object to work with
            List<InventoryItem> items = import.inventory_items.Where(x => x.itemnum == "480-15").Select(x => new InventoryItem{itemnum =x.itemnum}).ToList(); //x commands

            items.ToList().ForEach(x => Console.WriteLine(x.itemnum)); //foreach loop for items
            
                return View(items.ToList());
            }
        }
    }

我的观点是这样的:

@model List<LinqApplication.Models.InventoryItem>

@{
    ViewBag.Title = "Index";
}

<h2>Index</h2>

<table class="table">
    <tr>
        <th>
            @Html.DisplayName(model => model.itemnum)
        </th>  
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.itemnum)
        </td>
         
    </tr>
}

</table>

错误在以下位置加了下划线: @Html.DisplayFor(modelItem => item.itemnum)

有人对如何解决这个问题有任何想法吗?

提前谢谢你!

【问题讨论】:

  • 试试这里的一些答案:stackoverflow.com/questions/2058487/…
  • 是的,这就是我用来尝试解决问题的方法。我找不到任何有助于解决我正在寻找的东西的东西。我尝试了“使用”命令,我尝试更改一些语句,但它仍然回到这个错误。谢谢!

标签: c# linq controller


【解决方案1】:

尝试将@Html.DisplayName(model =&gt; model.itemnum) 更改为@Html.DisplayNameFor(model =&gt; model[0].itemnum)。 你需要DisplayNameFor 来使用表达式,DisplayName 只显示一个字符串。

【讨论】:

  • 现在似乎在“itemnum”部分给出了错误,与整个声明相反。也许我们正在到达某个地方。
  • 我得到:“List”不包含“itemnum”的定义,并且找不到接受“List”类型的第一个参数的可访问扩展方法“itemnum”(您是否缺少 using 指令或程序集引用?)
  • 试试model =&gt; model[0].itemnum
  • 你是个传奇。你怎么知道?为什么?我需要答案大声笑。谢谢!
  • 如果这回答了你的问题,请acceptit
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多