Este es un comportamiento realmente extraño, y he configurado un código de demostración para tratar de descubrir qué está pasando.MVC2 TextBox ¿El valor no se actualiza después del envío?
Básicamente tiene a dos acciones y una sola vista. La primera acción envía un modelo vacío a la vista, la acción de sección recibe el modelo, altera su contenido y lo envía a la misma vista.
El wierdness es, en la vista, el modelo parece tener los valores actualizados en ella, pero cuando hago un Html.TextBoxFor (x => x.PropertyNameHere) que hace que un cuadro de texto con el valor inalterado en ella.
lol ... Me disculpo de antemano por el humor del inodoro, pero evita que el día se vuelva demasiado aburrido. ;)
¿Alguien tiene alguna idea de lo que está pasando aquí? ¿Por qué la salida de TextBoxFor pone el valor anterior en el atributo de valor?
Aquí está el código para replicar:
/Views/Demo/Index.aspx
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<TestWeb.DemoModel>" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Demo</title>
</head>
<body>
<div>
<%using (Html.BeginForm("DemoSubmit", "Admin", FormMethod.Post)) { %>
Foo: <%=Html.TextBoxFor(x => x.Foo)%> <%:Model.Foo %><br />
Bar: <%=Html.TextBoxFor(x => x.Bar) %> <%:Model.Bar %><br />
PoopSmith: <%=Html.TextBoxFor(x => x.PoopSmith) %> <%:Model.PoopSmith %><br />
<button type="submit">Submit</button>
<%} %>
</div>
</body>
</html>
DemoModel.cs
namespace TestWeb {
public class DemoModel {
public string Foo { get; set; }
public int Bar { get; set; }
public string PoopSmith { get; set; }
}
}
DemoController.cs
public class AdminController : Controller {
public ActionResult Index() {
var m = new DemoModel();
return View(m);
}
public ActionResult DemoSubmit(DemoModel demo) {
demo.Foo += "!!!";
demo.Bar++;
demo.PoopSmith += " has pooped.";
return View("Index", demo);
}
}
Y h ERE es la salida extraña:
Bizarre http://i47.tinypic.com/308cwvb.png
+1 ¡LOL! ¡Tus habilidades de búsqueda son superiores a las mías! Eso tiene sentido, gracias por la respuesta. –