Asp.net mvc 将模型与局部视图一起使用-该名称在当前上下文中不存在

Asp.net mvc 将模型与局部视图一起使用-该名称在当前上下文中不存在,asp.net-mvc,asp.net-mvc-4,razor,Asp.net Mvc,Asp.net Mvc 4,Razor,这里又是一个书呆子。我已经完成了nerddinner项目的示例,并开始创建一个我需要的类似的新东西 因此,我的index.cshtml如下所示: @model PagedList.IPagedList<ProjectSender.Models.Incident> ... @foreach (var item in Model) { <tr> <td> @Html.ActionLink(item.Title, "D

这里又是一个书呆子。我已经完成了nerddinner项目的示例,并开始创建一个我需要的类似的新东西

因此,我的index.cshtml如下所示:

@model PagedList.IPagedList<ProjectSender.Models.Incident>
...
@foreach (var item in Model)
{
    <tr>
        <td>
            @Html.ActionLink(item.Title, "Details", new { id = item.IncidentId })
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Description)
        </td>
        <td>
            @Html.Partial("_ReserveStatusList", item)
        </td>
    </tr>
}
@model PagedList.IPagedList<ProjectSender.Models.Incident>
<script src="/Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"></script>
<script type="text/javascript">

    function AnimateProjectMessage() {
        $("#projectmsg").animate({ fontSize: "1.5em" }, 400);
    }

</script>
<div id="projectmsg">


        @Ajax.ActionLink("Reserve this Project",
                             "Reserve", "Projects",
                                      new { id = item.IncidentId },
                             new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "projectmsg", OnSuccess = "AnimateProjectMessage" })

</div>

最终,在从MVC3/EF4升级到MVC4/EF4并将部分视图恢复到接受答案中建议的原始nerddinner代码后,一切正常。

请注意,在部分视图中没有定义项目。Partial view将其作为模型接收,并将您的Partial的模型修复为仅一个事件顺便说一句-您没有在其中传递列表,因此您需要使用模型来引用传递的项目:

@model ProjectSender.Models.Incident
...
@Ajax.ActionLink("Reserve this Project",
                     "Reserve", "Projects",
                              new { id = Model.IncidentId },

请同时发布你的控制器操作方法。嗯,没有效果,这是它最初的样子,我在MVC3中遇到了这个错误:pagedlist.ipagedlist不包含的定义。抱歉,换言之,我只是删掉了错误中有助于我在谷歌工作的部分。做了我上面所做的,那个错误就消失了。然后,我使用EF4从MVC3更改为MVC4,这肯定有帮助。但是,在这之前我改变了很多东西,看起来我需要回溯一些。不过,有了你的回答,我至少可以把注意力集中在其他地方。如果你有其他想法,我洗耳恭听。我真的很感激!Doh,对不起,你是100%正确的。我更改了顶部的@Model部分,但没有将项目更改为Model。一旦这样做,一切都会按预期工作,这也是原始nerddinner代码的工作原理。所以,我认为MVC3和EF4不能很好地配合?无论如何,非常感谢,我现在可以去更绿色的牧场了。。。
@model ProjectSender.Models.Incident
...
@Ajax.ActionLink("Reserve this Project",
                     "Reserve", "Projects",
                              new { id = Model.IncidentId },