将选定的复选框值保存到数据库列



我需要通过API调用将字符串值从多个复选框保存到数据库。我如何在数据库模型中正确建模,以便可以将字符串值保存到数据库表中的一个列中。我正在使用ASP.NET MVC,我在前端使用了vue.js。

我想传递一系列字符串,这些字符串将值从多个Check-Boxes表示到API端点。我将其表示为数据库模型中的字符串列表,也想将字符串值列表作为字符串保存为我的表列中。(注意:不确定这是否是一种很好的方法,因为我必须能够检索此列表后来从数据库中(。

 public class TempAccountOpeningRequest
    {
        [Key]
        public int Id { get; set; }
        [Required(ErrorMessage = "First Name is required")]
        [JsonProperty("first_name")]
        public string FirstName { get; set; }
        [Required(ErrorMessage = "Last Name is required")]
        [JsonProperty("last_name")]
        public string LastName { get; set; }      
        [JsonProperty("typesSelected")]
        public List<string> TypesSelected { get; set; }
    }

我希望能够将值从多个复选框传递给API,然后将数据保存到我的数据基表

您可以单独使用逗号将其保存在一列中:

将您的模型更改为:

public class TempAccountOpeningRequest
{
    ...
    [JsonProperty("typesSelected")]
    public string TypesSelected { get; set; }
}

您的保存可以这样:( TypesSelected将从vue.js发送为数组(

public class SaveTempAccountOpeningRequestDTO
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public List<string> TypesSelected { get; set; }
}

,您的API获取数据,然后将其转换为数组,然后将其保存在数据库中:

public bool Save(SaveTempAccountOpeningRequestDTO dto)
{
    ...
    string joinedTypesSelected = string.Join(',', dto.TypesSelected);
    ...
}

当然,当您获取数据时,应该将其更改为这样的列表:

yourResult.Select(x=>x.TypesSelected.Split(',')).ToList();

最新更新