【问题标题】:Searching By ID - ASP.NET MVC按 ID 搜索 - ASP.NET MVC
【发布时间】:2018-07-25 10:10:57
【问题描述】:

我有一个页面,用户也可以通过 ID 进行搜索,为此我尝试将 int 转换为字符串,但是当我运行页面时出现此错误。谁能帮助我或指出我正确的方向!
在此先感谢:)

LINQ to Entities 无法识别方法“Int32 ToInt32(System.String)”方法,并且该方法无法转换为存储表达式。

控制器:

 public ActionResult Lukkedesager(string searchingLukkedesager, int? pageNumber)

   {
        IPagedList<RMAHistory> query = db.RMAStatus
       .Join(db.RMA_History, u => u.ID, y => y.StatusID, (u, y) => new { u, y })
       .Where(x => x.y.Kundenavn.Contains(searchingLukkedesager) || Convert.ToString(x.y.Id).Contains(searchingLukkedesager))
       .Select(t => new RMAHistory
            {
               Kundenavn = t.y.Kundenavn,
               Id = t.y.Id

            }).ToPagedList(pageNumber ?? 1, 10);


            return View(query);

   }

查看:

using (Html.BeginForm("Lukkedesager", "User", FormMethod.Get))
   {

 @Html.TextBox("searchingLukkedesager", null, new { @placeholder = "VareNR, FakturaNR, Firmanavn", @class = "form-control", @id = "tx1" })

<button class="srhbtn" id="sh1" type="submit">SØG</button>

      }

【问题讨论】:

  • 这是db 某种数据库连接吗? RMAStatus 是实体吗?

标签: c# asp.net-mvc linq lambda


【解决方案1】:

使用 x.y.id.ToString().Contains 代替 Convert.ToString()...

  IPagedList<RMAHistory> query = db.RMAStatus
   .Join(db.RMA_History, u => u.ID, y => y.StatusID, (u, y) => new { u, y })
   .Where(x => x.y.Kundenavn.Contains(searchingLukkedesager) || x.y.Id.ToString().Contains(searchingLukkedesager))
   .Select(t => new RMAHistory
        {
           Kundenavn = t.y.Kundenavn,
           Id = t.y.Id

        }).ToPagedList(pageNumber ?? 1, 10);


        return View(query);

【讨论】:

    猜你喜欢
    • 2012-09-03
    • 2011-02-15
    • 1970-01-01
    • 2020-12-03
    • 2015-03-07
    • 1970-01-01
    • 2015-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多