#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. Я попробую это. Большое спасибо!