循环以从多个选择中保存值

问题描述

我有一个选择,现在需要选择并保存多个选项。他的 FrontEnd 部分已经完成,但 BackEnd 还没有完成。

我需要这个选择来保存选定的值,因为它需要循环代码,因为目前它只保存一个值。

但是我不知道如何循环这段代码,以便它保存所有值并停止给出错误

使用所选值及其代码进行筛选:

enter image description here

选择 html 代码

<div class="form-group pmd-textfield">
    <label for="TipoPenalAntecedenteCriminal" class="espacamentoLabels">
      Tipo Penal Principal
    </label>
    <select asp-items="Model.ListTipoPenal"
     name="COD_TIPO_PENAL_PRINCIPAL"
     id="TipoPenalAntecedenteCriminal"
     form="formAntecedenteCriminal"
     class="select-codigo" multiple
     onchange="mostrarOutroDeCombo(this,'OutroTipoPenalAntecedenteCriminal');">
          <option value="">Selecione a relação</option>
     </select>
 </div>

代码控制器:

这是我需要循环保存所有值的代码

 [HttpPost]
        public JsonResult SalvarantecedenteCriminal(IFormCollection form)
        {
            #region GET DADOS DO USUARIO
            var identity = (ClaimsIdentity)User.Identity;
            string usuarioLogado = identity.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier).Value;
            #endregion

            _logger.Loginformation(Eventoslog.Get,"Usuário: {Usuario} | Salvando Antecedente criminal de autor com o código {codigo}.",usuarioLogado,form["COD_AUTOR"]);

            string codantecedente = string.IsNullOrEmpty(form["COD_AUTOR_ANTECEDENTES_CRIMINAIS"]) ? "0" : (string)form["COD_AUTOR_ANTECEDENTES_CRIMINAIS"],codUF = string.IsNullOrEmpty(form["COD_UF"]) ? "0" : (string)form["COD_UF"],codTipoPenal = string.IsNullOrEmpty(form["COD_TIPO_PENAL_PRINCIPAL"]) ? "0" : (string)form["COD_TIPO_PENAL_PRINCIPAL"];

            DateTime? ocorrenciaData = string.IsNullOrEmpty(form["OcorrenciaData"]) ? null : (DateTime?)DateTime.Parse(form["OcorrenciaData"]);

            var antecendeteCriminal = new AutorAntecedentesCriminaisModel
            {
                COD_AUTOR = int.Parse(form["COD_AUTOR"]),COD_AUTOR_ANTECEDENTES_CRIMINAIS = int.Parse(codantecedente),OcorrenciaNumero = form["OcorrenciaNumero"],COD_UF = int.Parse(codUF),OcorrenciaData = ocorrenciaData,COD_TIPO_PENAL_PRINCIPAL = int.Parse(codTipoPenal),OutroTipoPenal = form["OutroTipoPenal"]
            };

            try
            {
                antecendeteCriminal.COD_AUTOR_ANTECEDENTES_CRIMINAIS = antecendeteCriminal.Insert(usuarioLogado);
            }
            catch (Exception excecao)
            {
                _logger.LogError(Eventoslog.FormularioSalvarErro,excecao,"Usuário: {Usuario} | Falha ao salvar antecedente criminal de autor com o código {codigo} devido à exceção.",form["COD_AUTOR"]);

                if (_env.IsDevelopment())
                    throw;

                return Json(null);
            }

            return Json(antecendeteCriminal);
        }

代码图片,黄色部分以及保存时出错的地方。

在“COD_TIPO_PENAL_PRINCIPAL = int.Parse (codTipoPenal),”中,它正在接收值,但没有保存。

enter image description here

解决方法

如果您想保存所有值,COD_TIPO_PENAL_PRINCIPAL 应该是一个 int 数组。

public int[] COD_TIPO_PENAL_PRINCIPAL { get; set; }

enter image description here