foreach语句不能对类型' Oblig1.Models.User'的变量进行操作。因为它不包含' GetEnumerator'的公开定义

时间:2014-10-09 12:00:06

标签: c# asp.net asp.net-mvc visual-studio

继续得到这个错误,似乎无法找到我出错的地方,任何可以伸出援手的人?

这是我的View,Minside.cshtml:

@model Oblig1.Models.User
<br />
<br />
<br />

<!-- Nav tabs -->
<ul class="nav nav-tabs" role="tablist">
<li class="active"><a href="#home" role="tab" data-toggle="tab">Kontoinformasjon</a></li>
<li><a href="#profile" role="tab" data-toggle="tab">Ordrehistorikk</a></li>
</ul>

<!-- Tab panes -->
<div class="tab-content">
    <div class="tab-pane active" id="home">
        <br />
        <br />
        <table class="table">
            @foreach (var user in Model)
            {
                @user.Firstname
            }
        </table>

    </div>
    <div class="tab-pane" id="profile">Ordrehistorikk</div>
    <div class="tab-pane" id="messages">...</div>
    <div class="tab-pane" id="settings">...</div>
</div>

控制器:

    public ActionResult Minside()
    {
        var db = new PastaContext();

        string compareEmail = (string)Session["User"];
        User foundUser = db.Users.Find(compareEmail);
        if(foundUser == null)
        {
            return RedirectToAction("Index");
        }
        else
        {
            return View(foundUser);
        }           
    }

我试图将视图中的第一行更改为@model IENumberable。

我真正希望发生的是我将1个用户的信息列出到视图中。

2 个答案:

答案 0 :(得分:1)

您在文件顶部声明MVC模板的模型是用户

@model Oblig1.Models.User

因此您不需要foreach,只需在视图中直接键入FirstName即可。

@model.FirstName

答案 1 :(得分:0)

你需要IEnumerable Type Model,就像foreach loop

一样
@model IEnumerable<Oblig1.Models.User>

如果您有单个用户对象,则不需要foreach循环。 你可以写

@model.FirstName