ASP.net MVC3 - Представления Razor и PartialViews с Ajax Postbacks

Мне очень не удалось заставить это работать!

В представлении ...

@model Project.Models.Account.ForgotPasswordModel

@{
    ViewBag.Title = "Forgot Password";
}

ForgotPassword

@Html.Partial("_ForgotPasswordUserNameAjax", ViewData.Model)

Я визуализирую это partialView ...

@model Project.Models.Account.ForgotPasswordModel

@{
    this.Layout = null;
}

@using (Ajax.BeginForm("ForgotPassword", new AjaxOptions() { UpdateTargetId = ViewBag.ReplaceID, InsertionMode = InsertionMode.InsertAfter }))
{
    @Html.ValidationSummary(true, "Forgot Password was unsuccessful. Please correct the errors and try again.")
    

Account Information

@Html.LabelFor(m => m.Username)
@Html.TextBoxFor(m => m.Username)
@Html.ValidationMessageFor(m => m.Username)

}

И это действие контроллера ...

[HttpPost]
        public PartialViewResult ForgotPassword(ForgotPasswordModel model)
        {

            if (String.IsNullOrEmpty(model.Username))
            {
                ModelState.AddModelError("Username", ForgotPasswordStrings.USER_NAME_REQUIRED);
            }
            else
            {
                bool isGood = false;
                model.Question = this._security.ValidateUserNameGetSecurityQuestion(model.Username, out isGood);

                if (!isGood)
                {
                    ModelState.AddModelError("Username", ForgotPasswordStrings.USER_NAME_INVALID);
                }

            }
            PartialViewResult retVal = null;
            if (ModelState.IsValid)
            {

                retVal = PartialView("ForgotPasswordAnswerAjax", model);
            }
            else
            {
                retVal = PartialView("_ForgotPasswordUserNameAjax", model);
            }

            return retVal;

        }

Тем не менее, каждый раз представление возвращает только PartialView, не содержащийся в макете. (Так что только мой PartialView находится на экране. Ничего другого.) Я пробовал несколько вещей, которые я ' нашел в сети ... http://www.compiledoughtts.com/2011/01/aspnet-mvc-razor-partial-views-with.html http://stackoverflow.com/questions/4655365/mvc3-submit-ajax-form

Но ничто не устранило эту проблему. Я изменил InsertionMode на все значения без изменений. Я изменил @ Html.Partial на блок кода, например @ { Html.RenderPartial ("_ ForgotPasswordUserNameAjax", ViewData.Model); }.

Это не работает ...

У меня заканчиваются идеи (и терпение)!

Пожалуйста, помогите!

14
задан DavidAndroidDev 3 February 2011 в 16:08
поделиться