首页 > 解决方案 > 如何使用 C# 字符串列表填充类

问题描述

在我正在开发的系统中,我将带有多个选项的选择发送到我的控制器中的字符串类型列表,我现在需要将我从视图中获得的这个列表链接到我在我的模型中拥有的登录类的列表。目标是字符串列表中的每个位置都成为新列表中的位置。

例如,我得到以下列表,其中包含从视图选择发送的值:

[0] = "147"

[1] = "33"

我需要将此数组链接到我的其他登录列表,就像这样

登录[0] = "147

登录 [1] = "33"

我会将我的代码与注释放在一起以更好地解释它:

看法:

<select class="selectpicker" multiple data-live-search="true" asp-for="ListResponsibles">
    <option value="147">John</option>
    <option value="212">Maria</option>
    <option value="33">Luiza</option>
</select>

模型:

//Here I get the options marked in the select
public List<string>ListResponsibles { get; set; }

//I want to pass the list I received from the view to this list
public List<Responsibles> ListResponsiblesData { get; set; }
    
public class Responsibles
{
    public string Login { get; set; }
}

控制器:

public async Task<IActionResult> RegisterTask([FromForm] WebdeskTasks webdeskTasks)
{
//I created this variable to receive data from the other list
var LoginList = webdeskTasks.ListResponsiblesData;

//Here I tried to link each possibility of the view's list array to my list, but it doesn't show value in webdeskTarefas.ListResponsibles [i]
for (int i = 0; i < webdeskTasks.ListResponsibles.Count; i++)
{
    LoginList[i].Login = webdeskTasks.ListResponsibles[i];
}

标签: c#.netasp.net-core

解决方案


您可以尝试以下代码:

public async Task<IActionResult> RegisterTask([FromForm] WebdeskTasks webdeskTasks)
{
        var LoginList = new List<Responsibles>();
        foreach (string i in webdeskTasks.ListResponsibles)
        {
            Responsibles re = new Responsibles();
            re.Login = i;
            LoginList.Add(re);
        }
        webdeskTasks.ListResponsiblesData = LoginList;
        //....
}

推荐阅读