简体   繁体   English

从操作控制器将ViewBag传递到PartialView,该控制器返回该PartialView

[英]Pass ViewBag to PartialView from action controller that returns that PartialView

I have an action controller that returns a partial view with a query. 我有一个动作控制器,它返回带有查询的局部视图。 In this controller I have a viewbag with another query that I want to pass to the partial view so I can use it in a foreach. 在此控制器中,我有一个视图袋,其中包含另一个查询,我希望将其传递给部分视图,以便可以在foreach中使用它。

Here is my code: 这是我的代码:

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());
    }

How can I pass ViewBag.OccDetails to the _QuizResults partial view? 如何将ViewBag.OccDetails传递给_QuizResults部分视图?

In my partial view I have: 在我的部分观点中,我有:

@model IEnumerable<Proj.Models.QuestionnaireViewModel>

            @foreach (var item in ViewBag.OccDetails)
            {
                @item.OccupationDescriptionOc

            }

But I get the error: "Object reference not set to an instance of an object" 但是我得到了错误:“对象引用未设置为对象的实例”

You do not need to send ViewBag, everything is already done for you just use this way... 您无需发送ViewBag,只需使用这种方式就可以完成所有工作...

For example: 例如:

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

What does your _QuizResults partial view look like? _QuizResults局部视图是什么样的? You should be able to access it directly in the view using: 您应该可以使用以下方法直接在视图中访问它:

@ViewBag.OccDetails

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM