【问题标题】:Pass ViewBag to PartialView from action controller that returns that PartialView将 ViewBag 从返回该局部视图的动作控制器传递给局部视图
【发布时间】:2014-06-18 19:42:25
【问题描述】:

我有一个动作控制器,它返回带有查询的局部视图。在这个控制器中,我有一个带有另一个查询的视图包,我想将它传递给局部视图,以便在 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

            }

但我收到错误:“对象引用未设置为对象的实例”

【问题讨论】:

    标签: c# asp.net asp.net-mvc asp.net-mvc-4 asp.net-mvc-partialview


    【解决方案1】:

    ViewBag 不需要你发,一切都已经为你做好了,你用这种方式就行了……

    例如:

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

    【讨论】:

      【解决方案2】:

      您的 _QuizResults 部分视图是什么样的?您应该可以使用以下命令直接在视图中访问它:

      @ViewBag.OccDetails
      

      【讨论】:

      • 您的 occDetails.GetOccupationDetails(occupationID) 语句是否返回 null?
      猜你喜欢
      • 2013-12-20
      • 2014-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多