传递控制器计算逻辑以使用ViewBag进行查看

时间:2012-06-21 17:54:35

标签: c# asp.net-mvc asp.net-mvc-3 entity-framework viewbag

我有一个控制器对数据运行一些计算,然后我需要将计算返回到视图。我知道我可以通过ViewBag完成此任务,但我想知道这样做的最佳做法。这些LINQ查询是否应该在View

中执行
public ViewResult Results()
{
    var surveyresponsemodels = db.SurveyResponseModels.Include(
        s => s.SurveyProgramModel).Include(s => s.PersonModel);

    ViewBag.PatientFollowUpResult = db.SurveyResponseModels.Count(
        r => r.PatientFollowUp);

    ViewBag.ChangeCodingPractice = db.SurveyResponseModels.Count(
        r => r.ChangeCodingPractice);

    ViewBag.CountTotal = db.SurveyResponseModels.Count();

    return View(surveyresponsemodels.ToList());
 }

1 个答案:

答案 0 :(得分:4)

最佳做法是不使用ViewBag

将您想要使用的所有数据放在 ViewModel 的视图中。

保持视图干净以进行计算,并仅将其用于演示文稿。