Visual Studio 2012 インターネット アプリケーション MVC4 C#
エラー
System.InvalidOperationException: ディクショナリに渡されたモデル項目の型は 'System.Data.Entity.Infrastructure.DbQuery
1, but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable
1です
My View Expects:@model IEnumerable<OG.Models.UserProfiles>
これはViewModel ではなくデータモデルです。*このビューはUserProfiles
、コントローラーを作成したときにモデルによって生成されたものでもあります ( Standart Scaffolding with@Html.DisplayNameFor(model => model.Company)
および後で@foreach (var item in Model) {
to list data`
私のコントローラーの試み:
試行 1認識 (リストを返さない)
return View(db.UserProfiles .Include(c => c.Roles) .Where(c => c.Roles.Any(up => up.RoleName != "Administrator")) .Select(c => new { UserID = c.UserID, UserName = c.UserName, UserCount = c.Roles.Count() }));
試行 2認識 (リストを返さない)
var model = from usr in db.UserProfiles join rls in db.UserRoles on usr.Roles equals rls.RoleId select new { UserID = usr.UserID, UserName = usr.UserName };
試行 3認識 (リストを返さない)
var model = from usr in db.UserProfiles.Include(t => t.Roles) where usr.Roles.Any(up => up.RoleName != "Administrator") select new WebAdminUsersLookup { UserID = usr.UserID, UserName = usr.UserName };
試行 4これは「実際の」リストではないと思いますが、それでもエラーが発生します
var listOfIdeas = (from x in db.UserProfiles.Include(t => t.Roles) .Where(u => u.Roles.Any(up => up.RoleName != "Administrator")) select new { UserID = x.UserID, UserName = x.UserName }).ToList();
試行 1 ~ 3 の場合
List<UserProfiles> modelList = new List<UserProfiles>(); modelList.Add(model.ToList());
そのようなものとそれらのためのビューモデルを作成しました
private class WebAdminUsersLookup
{
//public List<UserProfiles> Users { get; set; }
public int UserID { get; set; }
public string UserName { get; set;}
}
検索したウェブサイト: