Отображение отмеченных / выбранных элементов, как отмечено на странице редактирования
Так что у меня есть эта страница, где пользователь может выбрать элементы для двух разных категорий (Случаи и Стороны). Когда пользователь создает посещение (расписание), он может выбрать элемент или элементы из категории «Случаи» и выбрать определенные стороны. Затем они сохраняют информацию на основе выбора. Когда я перехожу на страницу редактирования этого созданного расписания, мне бы хотелось отметить флажки для элементов, которые были выбраны и сохранены на странице создания. Я не уверен, что мне не хватает пропущенных параметров или что мне нужно, чтобы показать выбранные элементы.
мой Create Get & Почтовый индекс (сохранение информации, содержащей выборки)
[HttpGet]
public ActionResult Create(Guid caseId)
{
var viewModel = new VisitViewModel();
SetCaseFields(caseId, viewModel);
viewModel.Time = _defaultVisitTime;
AddLookupsToViewModel(viewModel);
return View(viewModel);
}
[HttpPost]
public ActionResult Create(VisitViewModel viewModel, Guid[] associatedCasesSelected, Guid[] selectedParties)
{
if (!ModelState.IsValid)
{
viewModel.Time = _timeEntryHelper.Value;
AddLookupsToViewModel(viewModel);
return View(viewModel);
}
VisitEntry dto = Mapper.Map(viewModel);
dto.VisitDate = _timeEntryHelper.AddTimeToDate(dto.VisitDate);
dto.CasePartyIds = selectedParties;
dto.Cases = associatedCasesSelected;
SetCurrentUserAndOffice(dto);
try
{
_visitEntryService.Create(dto, dto.Cases);
this.FlashInfo(string.Format(Message.ConfirmationMessageCreate, Resources.Entities.Visit.EntityName));
}
catch (RulesException ex)
{
ex.CopyTo(ModelState);
}
if (ModelState.IsValid)
return RedirectToAction("Edit", "Case", new { caseId = viewModel.CaseId });
return View(viewModel);
}
Это мой Edit Get & Почтовый метод.
[HttpGet]
public ActionResult Edit(Guid visitEntryId)
{
VisitEntry dto = _visitEntryService.Get(visitEntryId);
if (dto == null) return View("Error");
VisitViewModel viewModel = Mapper.Map(dto);
SetCaseFields(dto.CaseId, viewModel);
AddLookupsToViewModel(viewModel);
return View(viewModel);}
[HttpPost]
public ActionResult Edit(VisitViewModel viewModel, Guid[] associatedCasesSelected, Guid[] selectedParties)
{
if(!ModelState.IsValid)
{
viewModel.Time = _timeEntryHelper.Value;
AddLookupsToViewModel(viewModel);
return View(viewModel);
}
try
{
VisitEntry dto = Mapper.Map(viewModel);
dto.VisitDate = _timeEntryHelper.AddTimeToDate(dto.VisitDate);
dto.CasePartyIds = selectedParties;
dto.Cases = associatedCasesSelected;
SetCurrentUserAndOffice(dto);
_visitEntryService.Update(dto, dto.Cases);
}
catch (RulesException ex)
{
ex.CopyTo(ModelState);
}
if (!ModelState.IsValid)
{
viewModel.Time = _timeEntryHelper.Value;
AddLookupsToViewModel(viewModel);
return View(viewModel);
}
this.FlashInfo(string.Format(Message.ConfirmationMessageUpdate, Kids.Resources.Entities.Visit.EntityName));
return RedirectToAction("Edit", "Case", new {caseId = viewModel.CaseId});
}
Этот метод загружает информацию о вечеринке:
IList caseParties =
_associatedCasePartyService.GetAssignedPartiesForThisAndAssociatedCases(viewModel.CaseId,
_currentUser.OfficeId);
if (caseParties != null)
viewModel.AvailableCaseParties = caseParties;
Это моя модель представления:
public class VisitViewModel
{
public IEnumerable AvailableCaseParties { get; set; }
public IList PartiesSelected { get; set; }
}
VisitForm.ascx, содержащий поля размещения:
Party.ascx - содержит строку, позволяющую установить флажок, и когда это будет сделано, и перейти к редактированию записи, в которую загружается страница со всей сохраненной информацией, кроме отмеченных сторон:
0)
{%>
Parties
"PartiesGrid").Columns(
column =>
{
column.For(party =>
string.Format("",
party.PartyId, Model.PartiesSelected != null && Model.PartiesSelected.Count(p => p == party.PartyId) > 0 ? "checked" : string.Empty)).Encode(false).Header(string.Format(""));
column.For(party => party.FullName).Named(Kids.Resources.Entities.Party.EntityName);
}
).Empty(string.Format("No {0}", Kids.Resources.Entities.Party.EntityNamePlural))
%>