【问题标题】:Data from AspNetUsers table error and "System.Collections.Generic.IEnumerable" error来自 AspNetUsers 表错误和“System.Collections.Generic.IEnumerable”错误的数据
【发布时间】:2014-03-24 13:59:28
【问题描述】:

我想将AspNetUsers 表中的UserIdUserName 列列到我的管理区的EditProfile 视图中。

我的 EditProfile 模型是:

namespace AdminPanelExercises1.Areas.admin.Models
{
   public class EditProfileModel
   {
      public int ID { get; set; }
      public string UserID { get; set; }
      public string UserName { get; set; }
      public string UserEmail { get; set; }
      public bool IsAdmin { get; set; }
   }
}

我的 EditProfile 控制器是:

private AdminPanelExercises1.Models.ApplicationUser db3 = new AdminPanelExercises1.Models.ApplicationUser();

    // GET: /admin/EditProfile/
    public ActionResult Index()
    {

        EditProfileModel EPM = new EditProfileModel();
        EPM.UserID = db3.Id;
        EPM.UserName = db3.UserName;

        return View(EPM);
    }

我的 EditProfile 视图是:

@model IEnumerable<AdminPanelExercises1.Areas.admin.Models.EditProfileModel>

@{
   ViewBag.Title = "Account Management";
   Layout = "~/Areas/admin/Views/Shared/_layout.cshtml";
 }

 <h2>Index</h2>

 <p>
@Html.ActionLink("Create New", "Create")
</p>
<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.UserID)
        </th>
    <th>
        @Html.DisplayNameFor(model => model.UserName)
    </th>

    <th></th>
    </tr>

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

    <td>
        @Html.ActionLink("Edit", "Edit", new { id=item.ID }) |
        @Html.ActionLink("Details", "Details", new { id=item.ID }) |
        @Html.ActionLink("Delete", "Delete", new { id=item.ID })
    </td>
   </tr>
  }

  </table>

而且我也收到如下错误:

传入字典的模型项的类型为“AdminPanelExercises1.Areas.admin.Models.EditProfileModel”,但此字典需要类型为“System.Collections.Generic.IEnumerable`1[AdminPanelExercises1.Areas.admin”的模型项.Models.EditProfileModel]'。

我该如何解决这个问题? 我是否编写了从 AspNetUsers 表中获取数据的错误代码?

【问题讨论】:

    标签: c# asp.net asp.net-mvc entity-framework


    【解决方案1】:

    您的 View 需要一个 IEnumerable (IEnumerable&lt;AdminPanelExercises1.Areas.admin.Models.EditProfileModel&gt;) 的模型,并且您正在从控制器中返回单个项目

    你的视图应该有这样的模型:

    @model AdminPanelExercises1.Areas.admin.Models.EditProfileModel
    

    如果您要在 View 中显示多条记录,那么您的控制器应该返回多个项目(不是单个项目,如当前代码)

    【讨论】:

    • 非常感谢。我是 MVC 的新手。我应该使用什么来从我的控制器返回多个项目?因为我想从 AspNetUsers 表中列出我所有的用户和用户 ID。
    • 您可以从控制器返回List&lt;AdminPanelExercises1.Areas.admin.Models.EditProfileModel&gt;。从数据库中填写该列表并将其返回,让您的模型保持不变。应该不错。
    • 非常感谢您的帮助。我会按照你的建议去做。
    猜你喜欢
    • 1970-01-01
    • 2014-11-18
    • 2020-06-06
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多