1

我一直在这个答案中看到像第三个代码块这样的例子,而 ViewModel 的成员是通过 访问的model.Member,但是我从来没有能够model在我的任何视图中使用小写字母。

我了解如何在 MVC Razor Views 中使用@model指令和属性。Model我不明白的是model.ChartItems,当我的代码与我的问题第一行中链接的示例几乎相同时,如何从视图中访问。

如果有人能澄清MVC Razor 视图之间的区别model.Member,我将不胜感激。Model.Member似乎我需要弄清楚如何访问model.Member,如该问题顶部的链接所示,但我似乎无法找到任何关于此事的详细说明。

这是我尝试访问的视图的代码model

@model Models.StudentHistoryModel

<h2>Student History</h2>

@Html.RenderPartial("_Course", model.CourseCompletion);
@Html.RenderPartial("_Track", model.TrackCompletion);
@Html.RenderPartial("_Certification", model.CertificationCompletion);

这是将数据传递给视图的控制器操作:

public ActionResult History(int id)
{
    var history = new StudentHistoryModel();

    history.CourseCompletion = db.CourseCompletions
        .Where(c => c.StudentID == id)
        .ToList();

    history.TrackCompletion = db.TrackCompletions
        .Where(c => c.StudentID == id)
        .ToList();

    history.CertificationCompletion = db.CertificationCompletions
        .Where(c => c.StudentID == id)
        .ToList();

    return PartialView("_History", history);
}

不,在你问之前,变量history不能从视图中访问。

4

2 回答 2

2

在经历了许多令人沮丧的故障排除之后,我决定尝试一些开箱即用的东西......我重新启动了 Visual Studio。之后,我可以像这样访问我的成员:

@Html.RenderPartial("_Course", Model.CourseCompletion);

然而,这带来了一个新的问题。我在整行上都收到了这个错误:

Cannot implicitly convert type 'void' to 'object'

我意识到该语句试图返回一个值,所以我将它用大括号括起来,如下所示:

@{Html.RenderPartial("_Course", Model.CourseCompletion);}

瞧。问题已解决,数据可访问,模型正常工作。我大吃一惊。

于 2013-06-10T19:01:13.880 回答
0

尝试这个:

@model Models.StudentHistoryModel

<h2>Student History</h2>

@Html.RenderPartial("_Course", Model.CourseCompletion);
@Html.RenderPartial("_Track", Model.TrackCompletion);
@Html.RenderPartial("_Certification", Model.CertificationCompletion);

注意使用模型,而不是不存在的model变量名。

于 2013-06-10T18:25:50.590 回答