Это действительно странное поведение, и я создал демо-код, чтобы попытаться выяснить, что происходит.MVC2 TextBoxFor значение не обновляется после отправки?
В основном есть два действия и один вид. Первое действие отправляет пустую модель в представление, действие раздела получает модель, изменяет ее содержимое и отправляет обратно в тот же вид.
Похоже, что модель, по-видимому, имеет в ней обновленные значения, но когда я делаю Html.TextBoxFor (x => x.PropertyNameHere), она отображает текстовое поле с неизменным значением в нем.
lol ... Я заранее извиняюсь за юмористический туалет, но он не дает деньу стать слишком скучным. ;)
Кто-нибудь знает, что здесь происходит? Почему вывод TextBoxFor старое значение в атрибуте value?
Вот код для репликации:
/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);
}
}
И h прежде чем это причудливое выход:
Bizarre http://i47.tinypic.com/308cwvb.png
+1 LOL! Ваши навыки поиска превосходят мои! Это имеет смысл, спасибо за ответ. –