让我们说,我有多种类别,如主板,案例和驱动器 . 他们每个人都有自己的viewmodel视图,比如MotherboardsView,CasesView和DrivesView . 和viewmodels - MotherboardsViewModel,CasesViewModel和DrivesModel . 我有控制器,我想根据类别切换视图模型 . 抽象代码看起来像这样:
//GET Action
public ActionResult Create(string Category)
{
switch (Category)
{
case "Motherboards":
var viewModel = new MotherboardsViewModel { };
break;
case "Cases":
var viewModel = new CasesViewModel { };
break;
default:
var viewModel = new DrivesViewModel { };
break;
}
//Here i use switched viewmodel to change some values, like:
viewModel.Name = GetRandomName();
...
//And i return view and viewmodel
return View(Category + "View", viewmodel)
}
有可能,我怎么能解决这个问题?
1 回答
这是一个基本的编程概念,与MVC没有特别的关系 . 必须在使用它的代码的"scope"内声明变量 . 您的
viewmodel
在switch语句中声明,并且在该代码块之外无法看到 . 试试这个声明viewmodel
,以便方法中的任何代码都可以访问它 . 注意var
已被删除 .