如何让我的视图识别我的对象

时间:2015-01-22 20:00:23

标签: c# asp.net-mvc

我已经创建了一个视图,我想用它来显示从数据库中提取的结果并在我的操作中传递给视图。当我创建视图时,我没有告诉它我想传递哪些对象,所以我尝试手动添加它们,但视图似乎没有识别它们。

这是我的结果视图,顶线是我尝试添加的内容,但VS并不认识它。因此空格为红色(无法识别),而item.Name和item.description为红色

@spaces IQueryable<GiftExchange.Core.Models.Space.YogaSpace>

 @{
   ViewBag.Title = "Results";
   Layout = "~/Views/Shared/_Layout.cshtml";
}

<h3>Search Results</h3>
@using (Html.BeginForm("Results", "Home", FormMethod.Get))
{
    <p>
    @Html.TextBox("Location") <input value='Search' type="submit" />
    </p>
}


<table border="1">
<tr>
    <th>
        @Html.DisplayNameFor(spaces => spaces.Name)
    </th>
    <th>
        @Html.DisplayNameFor(spaces => spaces.Description)
    </th>
</tr>



@foreach (var item in spaces)
{
    <tr>
        <th>
            @Html.DisplayFor(modelItem => item.Name)
        </th>
        <th>
            @Html.DisplayFor(modelItem => item.Description)
        </th>
    </tr>
}

</table>

这是我的行动

[AllowAnonymous]
    public ActionResult Results(string searchTerm)
    {
        IQueryable<YogaSpace> spaces;
        using (var repo = new YogaSpaceRepository())
        {
            spaces = repo.All;
        }

        return View(spaces);
    }

1 个答案:

答案 0 :(得分:4)

在视图的第一行,为@spaces切换@model

然后使用spaces而不是Model而不是{{1}}。

有关详情,请参阅Google搜索&#34;强类型视图&#34;。