模型不包含定义错误

时间:2015-08-07 23:10:23

标签: asp.net-mvc model-view-controller

我在我的项目中遇到了一个问题,并想知道是否有人可以指出我可能出错的地方。所以基本上在我的项目中我有一个像这样的ActionResult方法:

public ActionResult PartNumberManufacturer(string id)
{
  var partNumber = _Context.PartNumberTable.FirstOrDefault(x => x.partNumberId == id);
  return PartialView("PartNumberView",    partNumber);
}

然后这是我的观点

@if (Model != null && !string.IsNullOrEmpty(Model.PartNumberManufacturer))
{
  @if (Model.PartNumberManufacturer == "Fr")
  {
    <div>
      <p> This product is developed in france </p>
      @if (@Model.PartNumberManufacturer == "Ger")
      {
        <p> This Product is developed in Germany </p>
      }

以上代码工作正常。但问题是,如果你回顾我的ActionResult控制器方法,我正在使用:

var partNumber = Context.PartNumberTable.FirstOrDefault(x => x.partNumberId == id);

FirstOrDefault-course只返回数据库中第一个找到的零件号。 这不是我正在寻找的我不希望它只返回第一个找到的记录,我希望它返回匹配数据库中的搜索查询的所有记录。所以为了做到这一点并在网上进行了一些研究之后,我发现我必须将结果返回到列表中,这使我修改了我的ActionResult方法,如下所示:

public ActionResult PartNumberManufacturer(string id)
{
  var _methodOfRepair = Context.PartNumberTable.Where(x => x.PartNumberId == id); // changed thisline
  return PartialView("PartNumberView",    partNumber);
}

所以是的,我收到的错误信息是:

  

{“'System.Data.Entity.Infrastructure.DbQuery'不包含   'PartNumberManufacturer'“}的定义

我做了那些改变。我在这做错了什么?或者为了达到这个目的,我可以推荐一种不同的方法吗?

谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

首先推荐,请阅读implementing the repository pattern

其次,如果您要向View发送一组对象,那么您的View需要预期该数据类型。更改View预期的Model数据类型。

在View中,您应该遍历每个元素并进行渲染。