Exemple #1
0
        public virtual JsonResult NextWizardStep(/*[ModelBinder(typeof(WizardModelBinder))]*/ [Deserialize] WizardViewModel model, FormCollection form)
        {
            var state = ViewModelSessionState;

            model.SetStepIndex(state != null ? state.StepIndex : 0);
            RemoveValidationRulesFromOtherSteps(model);

            if (Validate(ModelState, model))
            {
                model.Errors = null;
                model.NextStep();

                try
                {
                    ProcessToNext(model);
                }
                catch (ValidationException valEx)
                {
                    // Catch custom exceptions so decrease the stepindex
                    model.PreviousStep();

                    // Return the errors to the client
                    model.Errors = new List <WizardValidationResult>();
                    model.Errors.Add(new WizardValidationResult {
                        MemberName = string.Empty, Message = valEx.ValidationResult.ErrorMessage
                    });
                }
            }

            ViewModelSessionState = model;
            return(Json(model.StepIndex));
        }
Exemple #2
0
        public virtual JsonResult PreviousWizardStep([ModelBinder(typeof(WizardModelBinder))] WizardViewModel model)
        {
            var state = ViewModelSessionState;

            model.SetStepIndex(state != null ? state.StepIndex : 1);
            ModelState.Clear();
            model.Errors = null;
            model.PreviousStep();
            ProcessToPrevious(model);

            ViewModelSessionState = model;
            return(Json(model));
        }
Exemple #3
0
        public virtual JsonResult PreviousWizardStep(/*[ModelBinder(typeof(WizardModelBinder))]*/ [Deserialize] WizardViewModel model, FormCollection form)
        {
            var state = ViewModelSessionState;

            model.SetStepIndex(state != null ? state.StepIndex : 0);
            ModelState.Clear();
            model.Errors = null;
            model.CurrentStep.StepModel = this.FormCollectToObj <Type>(form);
            model.PreviousStep();
            ProcessToPrevious(model);

            ViewModelSessionState = model;
            return(Json(model.StepIndex));
        }