0

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.

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?

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"

2 Answers 2

1

You do not need to send ViewBag, everything is already done for you just use this way...

For example:

@foreach (var item in (IEnumerable<OccupationDetails>)ViewBag.OccDetails) { } 
Sign up to request clarification or add additional context in comments.

Comments

0

What does your _QuizResults partial view look like? You should be able to access it directly in the view using:

@ViewBag.OccDetails 

1 Comment

Is your occDetails.GetOccupationDetails(occupationID) statement returning null?

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.