0

私のページには、実行時に生成されるボックスがほとんどありません。ボックスが「空」の場合、ユーザーは続行できず、ボックスに値が含まれている場合、ユーザーは続行できます。

私の検証は、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);
        }

以下は、「自動マップ」ボタンのクリックでテーブルが生成される 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() を使用しましたが、その時間枠内の「ボックス」が生成されていなかったため、それも役に立ちませんでした。

他に情報が必要な場合はお知らせください。

提案してください!

4

0 に答える 0