Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将ViewModels列表传递给视图?_C#_Asp.net Mvc_Viewmodel - Fatal编程技术网

C# 如何将ViewModels列表传递给视图?

C# 如何将ViewModels列表传递给视图?,c#,asp.net-mvc,viewmodel,C#,Asp.net Mvc,Viewmodel,我对C#和asp.net mvc还很陌生,我一直试图在这里和其他论坛上找到我的问题的答案,但没有成功。然而,如果这个问题已经被问到和回答之前,我道歉,请你链接到该职位 我正在尝试创建一个树状视图,其中我将视图模型列表传递给我的视图 我使用代码优先的方法,并在模型和数据库之间添加了迁移 我的问题是如何将ViewModel的对象列表传递给视图? 我可以从控制器传递模型对象列表,但如何传递ViewModel对象列表?可能吗 也许有一个简单的解决办法,我还没有找到,也许我做这一切都错了。无论如何,我真的

我对C#和asp.net mvc还很陌生,我一直试图在这里和其他论坛上找到我的问题的答案,但没有成功。然而,如果这个问题已经被问到和回答之前,我道歉,请你链接到该职位

我正在尝试创建一个树状视图,其中我将视图模型列表传递给我的视图

我使用代码优先的方法,并在模型和数据库之间添加了迁移

我的问题是如何将ViewModel的对象列表传递给视图? 我可以从控制器传递模型对象列表,但如何传递ViewModel对象列表?可能吗

也许有一个简单的解决办法,我还没有找到,也许我做这一切都错了。无论如何,我真的需要一些帮助

public class MyClass
  {
        public int Id { get; set; }
        public int ParentId { get; set; }
        public string Name { get; set; }
  }


public class MyClassViewModel
  {
    public MyClass Parent { get; set; }
    public List<MyClass> Children
    {
        get { return GetChildren(); }
    }
    public List<MyClass> GetChildren()
    {
        var listOfChildren = new List<MyClass>().Where(c => c.ParentId == 
        Parent.Id).ToList();

        return listOfChildren;
    }
  }


public ActionResult CreateTree()
    {
        var viewModel = new MyClassViewModel();
 //This only returns one instance of an object, how to return a list?
        return View("CreateTree", viewModel); 
    }
公共类MyClass
{
公共int Id{get;set;}
public int ParentId{get;set;}
公共字符串名称{get;set;}
}
公共类MyClassViewModel
{
公共MyClass父级{get;set;}
公开儿童名单
{
获取{return GetChildren();}
}
公共列表GetChildren()
{
var listOfChildren=new List()。其中(c=>c.ParentId==
ToList();
返回儿童名单;
}
}
公共操作结果CreateTree()
{
var viewModel=新的MyClassViewModel();
//这只返回一个对象的一个实例,如何返回一个列表?
返回视图(“CreateTree”,viewModel);
}

非常简单,只需将视图模型列表传递给视图:

[HttpGet()]
public IActionResult CreateTree()
{
    List<MyViewModel> viewModelList = MyViewModel.GetList();
    return View("CreateTree", viewModelList);
}

非常简单,只需将视图模型列表传递给视图:

[HttpGet()]
public IActionResult CreateTree()
{
    List<MyViewModel> viewModelList = MyViewModel.GetList();
    return View("CreateTree", viewModelList);
}

您可以创建一个类,其中包含ViewModels的列表

public class ModelWithListOfViewModels
{
    public List<ViewModel> ViewModels { get; set; }
}
然后简单地在列表上循环以在视图中获取模型

@model ModelWithListOfViewModels

@foreach (var vm in Model.ViewModels)
{
     //use vm to get access to a ViewModel added in the list
}

您可以创建一个类,其中包含ViewModels的列表

public class ModelWithListOfViewModels
{
    public List<ViewModel> ViewModels { get; set; }
}
然后简单地在列表上循环以在视图中获取模型

@model ModelWithListOfViewModels

@foreach (var vm in Model.ViewModels)
{
     //use vm to get access to a ViewModel added in the list
}

我相信您正在尝试访问MyClassList中的“viewModel.Children”查看:这也是类似问题的多个示例:@NirmalSubedi。我需要创建一个viewmodel对象列表,每个对象都包含一个MyClass对象及其子对象(即MyClass对象)。感谢您提供的提示。我之前已经研究过这两个页面,但我会再看一看,也许我遗漏了什么……我相信您正在尝试访问“viewModel.Children”,这是我的类列表。请检查:这也是类似问题的多个示例:@NirmalSubedi。我需要创建一个viewmodel对象列表,每个对象都包含一个MyClass对象及其子对象(即MyClass对象)。感谢您提供的提示。我以前研究过这两个页面,但是我会再看一看,也许我遗漏了什么…感谢您的快速响应,但是
GetList()
不是一个公认的方法..?这只是一个返回列表的方法的示例。谢谢,我的误解。谢谢您的快速响应,但是
GetList()
不是公认的方法..?这只是一个返回列表的方法示例。谢谢,我的误解。