将var传递给IEnumerable视图

时间:2014-05-28 18:07:29

标签: 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()
    {
        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>

因此,您可以看到我将用户发送到我的视图,并且我想使用IEnumerable来迭代用户。但是,当我尝试使用模型m =&gt; m.username它找不到用户名? 我做错了什么?

2 个答案:

答案 0 :(得分:0)

m代表您的Model。您的模型为IEnumerable<SportsFantasy_2._0.Models.User>且没有username属性。如果要显示所有用户,请使用循环。

答案 1 :(得分:0)

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

@foreach(var item in Model)
{
 <th>
        @Html.DisplayNameFor(m => item.username)
    </th>
}