传递到字典中的模型项的类型为“ something”。传递到字典中的模型项的类型为“ something else”

时间:2019-01-05 20:06:42

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

我意识到这里有太多类似的问题。但是用这些解决方案我都无法解决我的问题。

 datingDbEntities db = new datingDbEntities();

  [Authorize]
  [HttpGet]
  public ActionResult FindMatch()
  {
      return View();
  }


 [HTTPPost]
 public ActionResult FindMatch(string searchString)
    {  
        var users = from m in db.userAcc
                    select m;

        if (!String.IsNullOrEmpty(searchString))
        {
            users = users.Where(s => s.userAd.Contains(searchString));
        }

        return View(users);
    }

这是我的行为

@model IEnumerable<datingo.Models.EntityFramework.userAcc>


<h2>Index</h2>


<p>
    @Html.ActionLink("FindMatch", "Home")

    @using (Html.BeginForm("FindMatch", "Home", FormMethod.Post))
    {
     <p>
        Title: @Html.TextBox("SearchString") <br />
        <input type="submit" value="Filter" />
     </p>
     }

这是我的观点。

namespace datingo.Models.EntityFramework
{
    using System;
    using System.Collections.Generic;

 public partial class userAcc
 {
    public int userId { get; set; }
    public string userName { get; set; }
    public string userPw { get; set; }
    public string userMail { get; set; }
    public Nullable<bool> userGender { get; set; }
    public string userAd { get; set; }
    public string userSoyad { get; set; }
    public Nullable<int> userBoy { get; set; }
    public Nullable<int> userKilo { get; set; }
    public string userHair { get; set; }
    public string userEye { get; set; }
    public string userCountry { get; set; }
    public string userFavTeam { get; set; }
    public string userBurc { get; set; }
    public string userFavMusic { get; set; }
    public string userFavFilm { get; set; }
    public string userMeslek { get; set; }
    public string userEgitim { get; set; }
    public byte[] userPhoto { get; set; }
    public Nullable<System.DateTime> userBirthday { get; set; }
    public int commentParentId { get; set; }
  }
}

如果需要,这是我的模型。

所以,即时通讯试图获取搜索结果,但是当我单击“提交”按钮时,它给了我

“传递到字典中的模型项的类型为'System.Data.Entity.Infrastructure.DbQuery`1 [datingo.Models.EntityFramework.userAcc]',但是此字典要求模型类型为'datingo.Models' .EntityFramework.userAcc'。”

错误。顺便说一句,我知道我没有为表列表添加所需的视图,但是至少现在对我来说这不是必需的。我不知道该怎么办,关于此列表和搜索动作的教程很多,他们工作正常,但我的工作不正常。

2 个答案:

答案 0 :(得分:0)

尝试将return View(users);更改为return View(users.ToList());

答案 1 :(得分:0)

我解决了我的问题。

我认为我使用了

@model IEnumerable<datingo.Models.EntityFramework.userAcc>

您记得吗。

在我引用的布局中,我也使用了另一个@model,例如

@model datingo.Models.EntityFramework.userAcc

当我删除布局模型零件时,它是固定的。