【问题标题】:How to populate a class with a C# String List如何使用 C# 字符串列表填充类
【发布时间】:2021-07-02 14:11:52
【问题描述】:

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

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

[0] = "147"

[1] = "33"

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

登录[0] = "147

登录[1] = "33"

我将把我的代码放在 cmets 中以便更好地解释它:

查看:

<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# .net asp.net-core


    【解决方案1】:

    或 LINQish 方式:

    public async Task<IActionResult> RegisterTask([FromForm] WebdeskTasks webdeskTasks)
    {
        webdeskTasks.ListResponsiblesData = webdeskTasks.ListResponsibles
            .Select(entry => new Responsible { Login = entry })
            .ToList();
            //....
    }
    

    【讨论】:

    • 谢谢,非常好的解决方案,我会标记为最佳解决方案。
    【解决方案2】:

    你可以试试下面的代码:

    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;
            //....
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-19
      • 1970-01-01
      • 2012-01-26
      相关资源
      最近更新 更多