¡No he tenido éxito en hacer que esto funcione!ASP.net MVC3 - Vistas de maquinilla de afeitar y vistas parciales con Atrasados de Ajax
En una vista ...
@model Project.Models.Account.ForgotPasswordModel
@{
ViewBag.Title = "Forgot Password";
}
<h2>ForgotPassword</h2>
<span id='@ViewBag.ReplaceID'>
@Html.Partial("_ForgotPasswordUserNameAjax", ViewData.Model)
</span>
me hacen esta 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.")
<div id="login" class="box">
<fieldset>
<h2>Account Information</h2>
<div class="inside">
<div class="editor-label">
@Html.LabelFor(m => m.Username)
</div>
<div class="editor-field">
@Html.TextBoxFor(m => m.Username)
<br />
@Html.ValidationMessageFor(m => m.Username)
<br />
</div>
<p>
<input type="submit" value='Submit' />
</p>
</div>
</fieldset>
</div>
}
Y esta acción del controlador ...
[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;
}
Sin embargo, cada vez , la vista solo devuelve el PartialView, que no se encuentra en el diseño. (Así que solo mi PartialView está en la pantalla. Nada más.) Lo intenté. ew cosas que he encontrado en Internet ... http://www.compiledthoughts.com/2011/01/aspnet-mvc-razor-partial-views-with.html http://stackoverflow.com/questions/4655365/mvc3-submit-ajax-form
Pero nada ha solucionado este problema. Cambié el modo de inserción a todos los valores sin cambios. Cambié @ Html.Partial a un bloque de código como @ { Html.RenderPartial ("_ ForgotPasswordUserNameAjax", ViewData.Model); }.
eso no funciona ...
Me estoy quedando sin ideas (y paciencia)!
Por favor ayuda!
Bueno, yo estoy convirtiendo este proyecto desde una aplicación MVC2 a MVC3 además de cambiar los puntos de vista a la maquinilla de afeitar. Funcionaron perfectamente bien antes de cambiar a MVC3. Esperaba no tener que cambiar el código del controlador (a excepción de la nueva denominación de las vistas con guiones bajos). :( – DavidAndroidDev