如何使用Jquery重新加载局部视图

时间:2013-10-08 18:46:05

标签: jquery ajax asp.net-mvc

在我的页面上,我有几个在运行时生成的框,如果框是“空”,我想进行验证,然后用户不能继续进行,如果框中包含一些值,那么用户可以继续

我的验证在JQuery的帮助下运行良好(下面添加)。但是,当我手动刷新页面时,ISSSUE现在正在工作,因此生成的框背后的原因是在“部分视图”中。所以现在我希望部分视图应该重新加载/刷新

下面是我添加的用于验证的JQuery:

<script>
    $(document).ready (function () {
        if ($('.type').length == $('.type:empty').length){
            $("#stepAutomapConfirm").attr("disabled", true);
            $("#stepAutomapConfirm").addClass("disabled").removeClass("active");
        }
        else {
            $("#stepAutomapConfirm").attr("disabled", false);
            $("#stepAutomapConfirm").addClass("active").removeClass("disabled");
        }
    });

</script>

以下是使用JQuery的小提琴: http://jsfiddle.net/aasthatuteja/xJtAV/

注意:它在小提琴上工作但不在我的部分视图中 以下是动作控制器:

[LoggingAspect]
        [HttpGet]
        public ActionResult AutomapInformation(int medCenterId, string medCenterSerialNumber, string viewName)
        {
            ProvisioningStepDto provisioningStepDto = ProvisioningHubProxy.Instance.GetOrCreateProvisioningStep(medCenterId, medCenterSerialNumber, WizardStep.AutomapInformation);
            AutomapInformationViewModel viewModel = null;
            try
            {
                var vaultInfo = ProvisioningHubProxy.Instance.GetMedCenterVault(medCenterSerialNumber);
                viewModel = new AutomapInformationViewModel
                    {
                MedCenterId = medCenterId,
                MedCenterSerialNumber = medCenterSerialNumber,
                Step = WizardStep.AutomapInformation,
                VaultInfo = vaultInfo
            };
            if (vaultInfo.Count != 0)
            {
                return PartialView(viewName, viewModel);
            }
            }
            catch (Exception ex)
            {
                LogManager.Logger.Error(ex);
            }
            viewModel = new AutomapInformationViewModel
            {
                MedCenterId = medCenterId,
                MedCenterSerialNumber = medCenterSerialNumber,
                Step = WizardStep.AutomapInformation
            };
            return PartialView("StepErrorView", viewModel);
        }

        [HttpPost]
        public ActionResult AutomapInformation(AutomapInformationViewModel viewModel)
        {
            LogManager.Logger.Info("ProvisioningController:AutomapInformation; [HttpPost] MedCenterId: ({0}), MedCenterSerialNumber: ({1})", viewModel.MedCenterId, viewModel.MedCenterSerialNumber);
            ProvisioningStepDto provisioningStepDto = ProvisioningHubProxy.Instance.GetProvisioningStep(viewModel.MedCenterSerialNumber, viewModel.Step);
            provisioningStepDto.ProvisionStepStatusId = (int)ProvisioningStepStatus.Complete;
            provisioningStepDto.VerifiedBy = "set current user";    //TODO: set the current user once authentication has been figured out
            ProvisioningHubProxy.Instance.UpdateProvisioningStep(provisioningStepDto, viewModel.MedCenterSerialNumber);

            return GetNextStep(viewModel.MedCenterId, viewModel.MedCenterSerialNumber, viewModel.Step);
        }

下面是单击“Automap”按钮生成表格的HTML标记:

    <div id="vault_placeHolder">
       @VaultRenderer.BuildVaultHtmlProvision(Model.VaultInfo, "MedCenterVault", 510, 850, 0.5)
    </div>
<div role="button" class="marginTop50 marginBottom">
    <input type="button" id="stepAutomap" value="Automap" class="active" />
    <input type="button" id="stepAutomapBack" value="Back" class="active marginLeft50" />
    <input type="button" id="stepAutomapConfirm" value="Confirm & Proceed" class="active marginLeft10" />
</div>

注意:我也尝试在点击按钮时添加我的JQuery功能,但它没有工作,因为还有刷新要求。我也尝试添加reload();在我的函数结束时使用了一些setTime(),但由于没有生成该时间范围内的“框”,这也没有帮助。

如果您需要任何其他信息,请与我们联系。

请建议!

0 个答案:

没有答案