У меня довольно большая форма, которая представляет информацию о посещениях, страховке и процедуре.Мне нужно иметь возможность отказаться от формы, чтобы создать новых пациентов, врачей, страховщиков и т. Д., Если они в настоящее время отсутствуют.Когда я перенаправлен обратно в форму, мне нужно сохранить данные формы плюс все новые данные, которые были добавлены.В настоящее время я использую TempData для хранения значений каждого отдельного свойства в моей модели.Затем я обращаюсь к значению TempData, чтобы заполнить поле «значение» в моих входах.Это прекрасно работает для всех моих полей, включая текст и дату, но выпадающие списки вызывают у меня проблемы.Я использую viewbag для заполнения DropDownListFor, и самое близкое, что я могу получить для достижения того, чего я хочу, это заменить 3-й параметр в DropDownListFor на мои TempData (значение по умолчанию) и установить скрытое поле с моим значением TempData.Это далеко не твердо и очень глючит.Я хочу, чтобы выпадающие списки работали так же, как мои текстовые и даты и время, но нет атрибута «значение» с DropDownListFor.Кто-нибудь знает, как я могу получить эквивалент «значения» в текстовом вводе в контексте DropDownListFor?Это DropDownListFor на мой взгляд
<div class="form-group">
<label asp-for="InsId" class="control-label">Insurance</label>
<a style="padding-left:18px;">
<button asp-controller="Insurances" asp-action="IndexSV" asp-route-id="@ViewBag.NextVisitID" class="btn btn-primary fa fa-plus-circle" style="background-color:#16a085;"></button>
</a>
@if (TempData.Peek("InsId") != null)
{
var InsName = (string)ViewBag.InsIdName;
@Html.DropDownListFor(modelItem => modelItem.InsId, (IEnumerable<SelectListItem>)ViewBag.Insurances, InsName, new { style = "width:80%;" })
<input type="hidden" asp-for="InsId" class="form-control" value="@InsuranceId" />
<span asp-validation-for="InsId" class="text-danger"></span>
}
else
{
@Html.DropDownListFor(modelItem => modelItem.InsId, (IEnumerable<SelectListItem>)ViewBag.Insurances, "--SELECT--", new { style = "width:80%;" })
<span asp-validation-for="InsId" class="text-danger"></span>
}
</div>
И вот как я получаю свои данные в контроллере
ViewBag.Insurances = _context.Insurance.Select(p => new SelectListItem { Value = p.InsId.ToString(), Text = p.InsCarrierName }).ToList().OrderBy(x => x.Text);