从返回那个PartialView的动作控制器传递ViewBag给PartialView

本文关键字:PartialView 控制器 ViewBag 返回 | 更新日期: 2023-09-27 18:09:28

我有一个操作控制器,它返回一个带有查询的部分视图。在这个控制器中,我有一个viewbag与另一个查询,我想传递给部分视图,所以我可以在foreach中使用它。

下面是我的代码:
public ActionResult GetQuizResults(string ProfileResult, short occupationID)
        var query = from o in db.Occupations
                    where o.Profile.Equals(ProfileResult, StringComparison.InvariantCulture)
                    select new QuestionnaireViewModel
                    {
                        OccupationID = o.OccupationID,
                        OccupationName = o.OccupationName,
                        OccupationDescription = o.OccupationDescription
                    };
        QuestionnaireViewModel occDetails = new QuestionnaireViewModel();
        ViewBag.OccDetails = occDetails.GetOccupationDetails(occupationID);
        return PartialView("_QuizResults", query.ToList());
    }

如何传递ViewBag。OccDetails到_QuizResults部分视图?

在我的部分视图中,我有:

@model IEnumerable<Proj.Models.QuestionnaireViewModel>
            @foreach (var item in ViewBag.OccDetails)
            {
                @item.OccupationDescriptionOc
            }

但是我得到错误:"对象引用未设置为对象的实例"

从返回那个PartialView的动作控制器传递ViewBag给PartialView

你不需要发送ViewBag,一切都已经为你做了,只需使用这种方式…

例如

:

@foreach (var item in (IEnumerable<OccupationDetails>)ViewBag.OccDetails)
{
}

你的_QuizResults部分视图看起来像什么?您应该能够在视图中使用:

直接访问它。
@ViewBag.OccDetails