Мне очень не удалось заставить это работать!
В представлении ...
@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.")
}
И это действие контроллера ...
[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); }.
Это не работает ...
У меня заканчиваются идеи (и терпение)!
Пожалуйста, помогите!