我需要通过API调用将多个复选框中的字符串值保存到数据库中。如何在数据库模型中对此进行正确建模,以便可以将字符串值保存到数据库表的一列中。我使用的是ASP.NET MVC,前端使用的是vue.js。
我想将代表多个复选框中的值的字符串数组传递给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,然后API将数据保存到我的数据库表中
答案 0 :(得分:0)
您可以将其保存在一列中,并用逗号分隔:
将模型更改为:
public class TempAccountOpeningRequest
{
...
[JsonProperty("typesSelected")]
public string TypesSelected { get; set; }
}
您的SaveDTO可能像这样:(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();