public async Task <ActionResult> Edit( [Bind(Include = "Id,Name,CreationTime,ChangedTime")] PositionModel position, long?claimKinds) { if (ModelState.IsValid) { var dbEntity = await db.Position.FindAsync(position.Id); if (dbEntity == null) { return(HttpNotFound()); } PositionModel.ApplyToEntity(dbEntity, position); db.Entry(dbEntity).State = EntityState.Modified; //если передан тип заявки - добавляем его if (claimKinds.HasValue) { if (!db.PositionClaimKind.Any(x => x.PositionId == position.Id && x.DictClaimKindId == claimKinds)) { db.PositionClaimKind.Add(new PositionClaimKind { DictClaimKindId = claimKinds.Value, PositionId = position.Id }); } } await db.SaveChangesAsync(); return(RedirectToAction("Edit", new { position.Id })); } ViewData["ClaimKinds"] = db.DictClaimKind .Where(x => x.IsVisible) .Select(x => new SelectListItem { Text = x.Name, Value = x.Id.ToString() }) .OrderBy(x => x.Text) .ToList(); return(View(position)); }