C# 将变量传递到IEnumerable视图

C# 将变量传递到IEnumerable视图,c#,asp.net-mvc,razor,ienumerable,C#,Asp.net Mvc,Razor,Ienumerable,这是我的控制器: [HttpPost] public ActionResult RegisterUser(User user) { var users = new User(user); Context.Users.Insert(user); return RedirectToAction("RegisterdUsers"); } public ActionResult RegisterdUsers()

这是我的控制器:

    [HttpPost]
    public ActionResult RegisterUser(User user)
    {
        var users = new User(user);
        Context.Users.Insert(user);
        return RedirectToAction("RegisterdUsers");
    }

    public ActionResult RegisterdUsers()
    {
        var users = Context.Users.FindAll();
        return View(users); 
    }
以下是我的观点:

@model IEnumerable<SportsFantasy_2._0.Models.User>
@{
ViewBag.Title = "RegisterdUsers";
}

<h2>RegisterdUsers</h2>
<table>  
<tr>
    <th>
        @Html.DisplayNameFor(m => m.username)
    </th>
</tr>
@model IEnumerable
@{
ViewBag.Title=“RegisterdUsers”;
}
注册用户
@DisplayNameFor(m=>m.username)

如您所见,我将用户发送到我的视图,并希望使用IEnumerable对用户进行迭代。但是当我尝试使用m=>m.username模型时,它找不到username?
我做错了什么?

m
代表您的
型号
。您的模型是
IEnumerable
,它没有
username
属性。如果要显示所有用户,请使用循环。

您必须迭代,因为它是某种类型的IEnumerable,而不是简单的类型:

@foreach(var item in Model)
{
 <th>
        @Html.DisplayNameFor(m => item.username)
    </th>
}
@foreach(模型中的变量项)
{
@DisplayNameFor(m=>item.username)
}

我在看一个关于pluralsight的教程,他们没有在那里做foreach循环。无论如何,我尝试了foreach,但是当我尝试构建@Html.DisplayNameFor(m=>item.UserName)时,我得到了以下错误“错误2:以下方法或属性之间的调用不明确:”然后它显示了很多扩展。当有多个对象时使用IEnumerable。如果需要单个对象,那么它应该是简单的模型。因此,如果我发送一个包含多个对象的对象,那么我不应该使用IEnumerable?是的,那么您的内部对象将是IEnumerable,但是视图绑定模型将是单个对象,但是在教程中接下来他们使用IEnumerable。如果我想使用它,我该如何使用它?假设我有多个对象。在这种情况下,我做错了什么?我正在看的pluralsight教程,他这样做了,发现他的模型中的所有东西都是正确的。你一定错过了教程中的某些内容。检查是否没有foreach,或者对DisplayNameFor(…)的调用是否在显示模板或编辑器模板内。