Exibindo itens marcados / selecionados como marcados na página de edição

Então eu tenho essa página onde o usuário pode selecionar itens para duas categorias diferentes (Casos e Partes). Quando um usuário cria uma visita (agendamento), ele pode selecionar itens ou itens da categoria Casos e selecionar determinadas partes. Em seguida, eles salvam as informações com base nas seleções. Quando eu vou para a página de edição desta agenda criada, eu gostaria de ter as caixas de seleção marcadas para os itens que foram selecionados e salvos durante a página de criação. Não tenho certeza se estou perdendo os parâmetros passados ​​ou o que eu preciso mostrar itens selecionados.

my Create Get & Post Code (salvando informações contendo seleções)

[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<VisitViewModel, VisitEntry>(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);
    }

Este é o meu método Editar Get & Post.

[HttpGet]
    public ActionResult Edit(Guid visitEntryId)
    {
        VisitEntry dto = _visitEntryService.Get(visitEntryId);
        if (dto == null) return View("Error");
        VisitViewModel viewModel = Mapper.Map<VisitEntry, VisitViewModel>(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<VisitViewModel, VisitEntry>(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});

        }

Este método carrega informações da festa:

IList<Party> caseParties =
            _associatedCasePartyService.GetAssignedPartiesForThisAndAssociatedCases(viewModel.CaseId,
                                                                                    _currentUser.OfficeId);
        if (caseParties != null)
            viewModel.AvailableCaseParties = caseParties;

Este é o meu viewModel:

public class VisitViewModel 
{
    public IEnumerable<Party> AvailableCaseParties { get; set; }
    public IList<Guid> PartiesSelected { get; set; }
}

VisitForm.ascx contendo canais de campos:

<%Html.RenderPartial("Parties", Model); %>

Parties.ascx - que contém a linha para permitir a verificação da caixa e, quando feito, editar a entrada que a página carrega com todas as informações salvas, exceto as marcadas:

 <% if (Model.AvailableCaseParties != null && Model.AvailableCaseParties.Count() > 0)
     {%>
         <div class="row">
         <fieldset>
         <legend>Parties</legend>
         <div>
                                            <%=Html.Grid(Model.AvailableCaseParties).Attributes(id => "PartiesGrid").Columns(
         column =>
           {
             column.For(party =>
             string.Format("<input type='checkbox' {1} name='selectedParties' value='{0}'/>",
                                                                                 party.PartyId, Model.PartiesSelected != null &&  Model.PartiesSelected.Count(p => p == party.PartyId) > 0 ? "checked" : string.Empty)).Encode(false).Header(string.Format("<TH><input type='checkbox' name='checkSelect'/></TH>"));

         column.For(party => party.FullName).Named(Kids.Resources.Entities.Party.EntityName);
                                                    }
                                                                  ).Empty(string.Format("No {0}", Kids.Resources.Entities.Party.EntityNamePlural))
                  %>
               </div>
          </fieldset>
     </div>

questionAnswers(0)

yourAnswerToTheQuestion