C# 如何用列表填充多选列表<;字符串>;和列表<;int>;?

C# 如何用列表填充多选列表<;字符串>;和列表<;int>;?,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,在我看来,我希望有一个列表框,其中填写了多选列表。My viewmodel具有MultiSelect的以下属性: public List<int> SelectedID { get; set; } public List<string> Names { get; set; } public List<int> ID { get; set; } public List SelectedID{get;set;} 公共列表名称{get;se

在我看来,我希望有一个列表框,其中填写了多选列表。My viewmodel具有MultiSelect的以下属性:

    public List<int> SelectedID { get; set; }
    public List<string> Names { get; set; }
    public List<int> ID { get; set; }
public List SelectedID{get;set;}
公共列表名称{get;set;}
公共列表ID{get;set;}
我不想让对象出现在我的viewmodel中,这就是为什么我使用字符串和int的列表

在我的控制器中,我创建viewModel并用从数据库中获取的数据填充列表

        myViewModel viewModel = new myViewModel();
        viewModel.ID = new List<int>();
        viewModel.Names = new List<string>();

        foreach(Var o in myData)
        {
            viewModel.ID.Add(o.Id);
            viewModel.Names.Add(o.Name);
        }

        return View(viewModel);
myViewModel viewModel=新的myViewModel();
viewModel.ID=新列表();
viewModel.Names=新列表();
foreach(myData中的Var o)
{
viewModel.ID.Add(o.ID);
viewModel.Names.Add(o.Name);
}
返回视图(viewModel);
但在我的viewmodel中,我不知道如何将其插入我的multiselect中。通常情况下,你会在列表中列出你想通过的对象,但我没有,在我的情况下是分开的

我知道您可以使用ViewBag或ViewData来传递整个数据列表,但在我工作的地方,不希望使用它

我考虑的另一种方法是在viewmodel中创建一个列表,但我不知道这是否被视为在MVC中编写代码的正确方法


我将非常感谢您的反馈,谢谢

你到底为什么不使用这个物体
new SelectList(myData,“Id”,“Name”)
我以前使用过对象方式,但据我的一些同事说,在viewmodel中对对象(模型)进行编码是不安全的。什么当然是。在任何情况下,查看模型都应该包含
SelectList
的属性,例如
public SelectList MyItems{get;set;}
并在控制器中分配它-
model.MyItems=new SelectList(myData,“Id”,“Name”)
,然后在查看
@Html.ListBoxFor(m=>m.SelectedID,model.MyItems)
谢谢。看起来简单的方法也是正确的方法。