0

我真的需要你的帮助,我被困住了,不知道从哪里开始修复。所以我有这个表格,用户可以在其中选择一个案例和各方。我应该保存并传递所选项目的值。我能够保存案例选择,但我无法保存选定的一方。这是我关于收集数据并保存它们的代码片段。

控制器:

[HttpPost]
    [ValidateInput(false)]
    public ActionResult Create(VisitViewModel viewModel, Guid[] associatedCasesSelected, Guid[] selectedParties)
    {
        if (!ModelState.IsValid)
        {
            viewModel.Time = _timeEntryHelper.Value;
            AddLookupsToViewModel(viewModel);
            return View(viewModel);
        }
        var visitEntry = Mapper.Map<VisitViewModel, VisitEntry>(viewModel);
        visitEntry.VisitDate = _timeEntryHelper.AddTimeToDate(visitEntry.VisitDate);
        visitEntry.UserId = _currentUser.UserId;
        visitEntry.OfficeId = _currentUser.OfficeId;
        try
        {
            _visitEntryService.Create(visitEntry, associatedCasesSelected, selectedParties);
            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 });
        AddLookupsToViewModel(viewModel);
        return View(viewModel);
    }

访问入口服务:

public void Create(VisitEntry visitEntry,IList<Guid>caseIds, IList<Guid>partyIds )
    {
        EnsureValid(visitEntry);
        _visitEntryRepository.Save(visitEntry);
        caseIds = AddCurrentCaseToCases(visitEntry.CaseId, caseIds,partyIds);
        foreach (var caseId in caseIds.Distinct())
        {
            var visit = new Visit {CaseId = caseId, VisitEntryId = visitEntry.VisitEntryId};
            _visitService.Create(visit);
        }
    }

访问条目存储库:

 public void Save(VisitEntry visitEntry)
    {
        if (visitEntry.VisitEntryId == Guid.Empty)
        {
            visitEntry.VisitEntryId = Guid.NewGuid();
            visitEntry.DateCreated = DateTime.Now;
            DataContext.VisitEntries.InsertOnSubmit(visitEntry);
        }
        else
        {
            var currentVisitEntry = Get(visitEntry.VisitEntryId);
            if (currentVisitEntry == null) throw RepositoryExceptionFactory.Create("VisitEntry", "VisitEntryId");
            currentVisitEntry.DateModified = DateTime.Now;
            currentVisitEntry.VisitDate = visitEntry.VisitDate;
            currentVisitEntry.VisitType =
                DataContext.VisitTypes.SingleOrDefault(vt => vt.VisitTypeId == visitEntry.VisitTypeId);
            currentVisitEntry.Note = visitEntry.Note;
        }
        DataContext.SubmitChanges();
    }

我不确定如何保存选定的一方,因为它正在保存案例信息和选定的案例。感谢您的任何反馈!

4

1 回答 1

0

保存调用稍早一些,因此您在触发 SubmitChanges 后所做的更改,将 SubmitChanges 移到最后,我相信您应该很高兴

更新

我的意思是更改如下代码,看看是否有帮助

控制器:

[HttpPost]
[ValidateInput(false)]
public ActionResult Create(VisitViewModel viewModel, Guid[] associatedCasesSelected, Guid[] selectedParties)
{
    if (!ModelState.IsValid)
    {
        viewModel.Time = _timeEntryHelper.Value;
        AddLookupsToViewModel(viewModel);
        return View(viewModel);
    }
    var visitEntry = Mapper.Map<VisitViewModel, VisitEntry>(viewModel);
    visitEntry.VisitDate = _timeEntryHelper.AddTimeToDate(visitEntry.VisitDate);
    visitEntry.UserId = _currentUser.UserId;
    visitEntry.OfficeId = _currentUser.OfficeId;
    try
    {
        _visitEntryService.Create(visitEntry, associatedCasesSelected, selectedParties);
        this.FlashInfo(string.Format(Message.ConfirmationMessageCreate, Resources.Entities.Visit.EntityName));
        DataContext.SubmitChanges();
    }
    catch (RulesException ex)
    {
        ex.CopyTo(ModelState);
    }
    if (ModelState.IsValid)
        return RedirectToAction("Edit", "Case", new { caseId = viewModel.CaseId });
    AddLookupsToViewModel(viewModel);
    return View(viewModel);
}

访问条目存储库:

public void Save(VisitEntry visitEntry)
{
    if (visitEntry.VisitEntryId == Guid.Empty)
    {
        visitEntry.VisitEntryId = Guid.NewGuid();
        visitEntry.DateCreated = DateTime.Now;
        DataContext.VisitEntries.InsertOnSubmit(visitEntry);
    }
    else
    {
        var currentVisitEntry = Get(visitEntry.VisitEntryId);
        if (currentVisitEntry == null) throw RepositoryExceptionFactory.Create("VisitEntry", "VisitEntryId");
        currentVisitEntry.DateModified = DateTime.Now;
        currentVisitEntry.VisitDate = visitEntry.VisitDate;
        currentVisitEntry.VisitType =
            DataContext.VisitTypes.SingleOrDefault(vt => vt.VisitTypeId == visitEntry.VisitTypeId);
        currentVisitEntry.Note = visitEntry.Note;
    }
}
于 2012-10-11T03:01:47.153 回答