Witam,
siedzę sobie cały dzień nad apką i złapałem błąd w prostym miejscu. Już widzę podwójnie, ale jak dla mnie tam nic złego się dziać nie powinno, a jednak.
W klasie AppUser mam 2 enumy - miasto i kwalifikacje, w widoku mam 2 select list itemy, problem w tym że o ile miasto przechodzi, to wartość kwalifikacji już się nie przesyła:
<form asp-action="UserProps" method="post">
<div class="form-group">
<label asp-for="City">Miasto</label>
<select asp-for="City" class="form-control" asp-items="@new SelectList(Enum.GetNames(typeof(Cities)))">
<option disabled selected value="">Wybierz miasto</option>
</select>
</div>
<div class="form-group">
<label asp-for="Qualifications">Kwalifikacje</label>
<select asp-for="Qualifications" class="form-control" asp-items="@new SelectList(Enum.GetNames(typeof(QualificationLevels)))">
<option disabled selected value="">Wybierz kwalifikacje</option>
</select>
</div>
<button type="submit" class="btn btn-primary">Zapisz</button>
<a asp-action="Index" class="btn btn-default">Anuluj</a>
</form>
W metodzie:
public async Task<IActionResult> UserProps([Required]Cities city, [Required]QualificationLevels qualification)
zmienna city ma wartość, a zmienna qualification już nie :|
#Edit
Żeby nie zakładać drugiego tematu, mam z ciekawości inne pytanie. Póki co wyrzuciłem te kwalifikacje i zostawiłem miasto, metoda wygląda tak:
[Authorize]
[HttpPost]
public async Task<IActionResult> UserProps([Required]Cities city)
{
if (ModelState.IsValid)
{
AppUser user = await CurrentUser;
user.City = city;
await userManager.UpdateAsync(user);
return RedirectToAction("Index");
}
return View(await CurrentUser);
}
Jeśli nie debuguje kodu jest ok, a przy debugowaniu wyrzuca mi błąd na linijcie z metodą UpdateAsync:
An unhandled exception occurred while processing the request.
SqlException: New transaction is not allowed because there are other threads running in the session.
Transakcja nie jest dozwolona ze względu na inny - chodzący w aktualnej sesji - thread.
Czemu debugowanie wpływa na poprawne wykonanie się akcji?