Добавить N: M таблицу с выбранными значениями с помощью asp.net

#c# #html #asp.net #entity-framework

#c# #HTML #asp.net #entity-framework

Вопрос:

Я разрабатываю простую форму, используя ASP.NET Ядро 2.2, и между таблицами, которые у меня есть, есть скрипты и теги, которые имеют отношение N: M. У меня есть множественный выбор для выбора между тегами в файле «CreateScripts.html » но в итоге выбирается только один тег. Я искал в документации, но не смог найти ответ. Кто-нибудь может мне помочь? Заранее спасибо.

Часть скриптов класса:

 [Key]
public int idScript { get; set; }


[ForeignKey("Tags")]
[Display(Name = "Tags")]
public int idTags { get; set; }

  

CreateScripts.html выбор:

   <div class="form-group">
        <label asp-for="Scripts.idTags" class="control-label"></label>
        </br>
        <select multiple="multiple" asp-for=" Scripts.idTags" asp-items="Model.listatag"> 
        </select>
  </div>
  

Создать.html.cs:

  public async Task OnGet()
        {
            var linguagem = from l in _context.Linguagem
                            select l;
            l = await linguagem.ToListAsync();
            listatag = _context.Tags.Select(x => new SelectListItem
            {
                Value = x.idTags.ToString(),
                Text = x.nmTags
            });             
        }

        [BindProperty]
        public Scripts Scripts { get; set; }

        public async Task<IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return Page();
            }

            Scripts.dtcriacaoScript = DateTime.Today.Date;
            Scripts.dtultimoacessoScript = DateTime.Today.Date;
            Scripts.idVersao = Convert.ToInt32(Scripts.idVersao);
            Scripts.idLinguagem = Convert.ToInt32(Scripts.idLinguagem);
            Scripts.idTags = Convert.ToInt32(Scripts.idTags);

            _context.Scripts.Add(Scripts);
            await _context.SaveChangesAsync();
            return RedirectToPage("./Index");
        }
    }
}
  

Комментарии:

1. если вы хотите выбрать несколько тегов, вам следует переместить свои idTags в массив тегов. попробуйте изменить int idTags на int[] idTags

2. Я попробую это. Большое спасибо!