MVC-从局部视图发布

时间:2018-12-04 16:09:34

标签: asp.net-mvc entity-framework partial-views

我有一个MVC Web应用程序,并且正在使用局部视图。这由一系列条件和相关的复选框组成。

Shown here

当前选中了一个复选框,并单击了保存按钮,通过此自定义操作进行发布

[HttpPost]
    public PartialViewResult SaveParticipationMeasurementTimeCriteria(int participationMeasurementTimeCriteriaId, bool response)
    {
        var participationMeasurementTime =
            repository.GetParticipationMeasurementTime(participationMeasurementTimeCriteriaId);

        repository.SaveParticipationMeasurementTimeCriteria(participationMeasurementTimeCriteriaId, response);

        unitOfWork.Save();
        var vm = GetParticipationMeasurementTimeCriteriaVM(participationMeasurementTime.ParticipationMeasurementTimeId);
        return PartialView("ParticipationMeasurementTimesCriteria", vm);

    }

在存储库中路由到该方法的地方

public void SaveParticipationMeasurementTimeCriteria(int participationMeasurementTimeCriteriaId, bool response)
    {
        var participationMeasurementTimeCriteria = Context.ParticipationMeasurementTimeCriteria
            .First(x => x.ParticipationMeasurementTimeCriteriaId == participationMeasurementTimeCriteriaId);
        participationMeasurementTimeCriteria.Response = response;
        participationMeasurementTimeCriteria.ModifiedDate = DateTime.Now;
        participationMeasurementTimeCriteria.ModifiedBy = System.Threading.Thread.CurrentPrincipal.Identity.Name;
    }

我的目标是通过仅具有一个保存所有按钮的更新来简化该过程。可以有任意多个条件。

我尝试使用JQuery在复选框更新后触发操作。

我尝试在控制器中创建一个新的自定义操作,以获取标准列表并更新它们,如下所示。

 [HttpPost]
    public PartialViewResult SaveParticipationMeasurementTimeCriteria(List<ParticipationMeasurementTimeCriteria> participationMeasurementTimeCriterias, int participationMeasurementTimeCriteriaId)
    {
        var participationMeasurementTime =
            repository.GetParticipationMeasurementTime(participationMeasurementTimeCriteriaId);
        foreach (var criteria in participationMeasurementTimeCriterias)
        {
            var participationMeasurementTimeCriteria =
                participationMeasurementTimeCriteriaRepository.GetById(criteria.ParticipationMeasurementTimeCriteriaId);

            participationMeasurementTimeCriteriaRepository.Update(criteria);
        }
        unitOfWork.Save();
        var vm = GetParticipationMeasurementTimeCriteriaVM(participationMeasurementTime.ParticipationMeasurementTimeId);
        return PartialView("ParticipationMeasurementTimesCriteria", vm);

    }

但是现在我很茫然。显然,就发布视图中的实体列表而言,我的知识与部分视图和mvc都存在一定的差距。

任何帮助将不胜感激。

0 个答案:

没有答案