尝试从结果集中填充 ViewModel 并传递给 View,但由于其范围不能

Trying to fill ViewModel from result set and pass to View, but cannot due to its scope

我正在从我的控制器中使用 entity framework 调用一个存储过程,然后接收返回的结果集。然后我尝试使用结果集来填充我的 ViewModel 并通过控制器操作将其传递给视图。问题是我必须从 if 语句内部调用存储过程,因此由于作用域我无法访问它以通过控制器操作传递它。

这是一个示例(在控制器操作中):

if (dropdown1 == "Name")
                {
                    var Results = entities.Report(SomeInputParameter).ToList();

                    var viewModel = new ReportingViewModel { Reports = Results };
                }

Report 是我的存储过程,Reports 是我要填充的 ViewModel 对象。

因为它在 If 语句中,所以我无法像这样访问它以将其传递给视图:

return View("ReportGenerator", viewModel);

如能提供有关访问此内容的最佳方式的任何帮助,我们将不胜感激。

谢谢!

你不能在 if 之外声明它吗?

ReportingViewModel viewModel = null;
if (dropdown1 == "Name")
{
    var Results = entities.Report(SomeInputParameter).ToList();

    viewModel = new ReportingViewModel { Reports = Results };
}

return View("ReportGenerator", viewModel);

只要确保适当地初始化它