У меня есть, надеюсь, простой вопрос, где у меня есть база данных, которая соединяет пользователей с тренировками, таблица пользователей и функциональность на сайте работают правильно, но когда я создаю таблицу UserWorkout и проверяю созданную на скаффолде страницу «Создать», чтобы начать новую тренировку , это дает мне выпадающий список всех пользователей, где я просто хочу, чтобы он автоматически выбирал пользователя, вошедшего на сайт по умолчанию. У меня проблемы с пониманием кода контроллера, чтобы исправить это.
Мой контроллер Create по умолчанию выглядит следующим образом:
// GET: UserCurrWorkouts/Create
public ActionResult Create()
{
ViewBag.UserId = new SelectList(db.Users, "UserId", "UserName");
ViewBag.UserActiveWorkout = new SelectList(db.WorkoutExercises, "LinkId", "LinkId");
return View();
}
И я попытался изменить его на это, чтобы он выбрал вошедшего в систему пользователя (а затем я удалил выпадающий список из представления в представлении):
public ActionResult Create()
{
var currentUser = Thread.CurrentPrincipal.Identity.Name;
ViewBag.UserId = db.Users.Where(x => x.UserName == currentUser).FirstOrDefault();
ViewBag.UserActiveWorkout = new SelectList(db.WorkoutExercises, "LinkId", "WorkoutId");
return View();
}
Но он просто выдал ошибку в строке кода db.SaveChanges();
, так что в этот момент я просто теряюсь в том, как я должен взаимодействовать с контроллером.
EDIT:
Вот мой код бритвы на странице Создать, которую я хочу удалить, и в которой есть выпадающий список всех пользователей:
<div class="col-md-10">
@* Eventually should not be able to select other users in the dropdown menu, but couldn't figure out how to implement this *@
@Html.DropDownList("UserId", null, htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.UserId, "", new { @class = "text-danger" })
</div>