Используйте перенаправление <meta>
вместо перенаправления заголовка, например так:
<?php
$page = Используйте перенаправление <meta>
вместо перенаправления заголовка, например так:
[110]SERVER['PHP_SELF'];
$sec = "10";
?>
<html>
<head>
<meta http-equiv="refresh" content="<?php echo $sec?>;URL='<?php echo $page?>'">
</head>
<body>
<?php
echo "Watch the page reload itself in 10 second!";
?>
</body>
</html>
Html.TextBox () использует внутренний метод ViewData.Eval (), который сначала пытается получить значение из словаря ViewData.ModelState, а затем - значение из свойства ViewData.Model. . Это сделано для восстановления введенных значений после отправки недопустимой формы.
Удаление значения Count из словаря ViewData.ModelState помогает:
public ActionResult Increment(Counter counter)
{
counter.Count++;
ViewData.ModelState.Remove("Count");
return View(counter);
}
Другое решение - создать два разных метода контроллера для операций GET и POST:
public ActionResult Increment(int? count)
{
Counter counter = new Counter();
if (count != null)
counter.Count = count.Value;
return View("Increment", counter);
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Increment(Counter counter)
{
counter.Count++;
return RedirectToAction("Increment", counter);
}
Объект счетчика может также передаваться через словарь TempData.
Вас также может заинтересовать статья Стивена Вальтера Повторное заполнение полей формы с помощью ViewData.Eval () .
Html.TextBox имеет больше параметров, чем один..первый параметр - это имя или идентификатор входного элемента, а второй - значение ...
, так что напишите помощника для текстового поля так:
<%= Html.TextBox("Count",Model.Count) %>
ура
Проблема не в этом. Указание
<%= Html.TextBox("Count") %>
эквивалентно указанию
<%= Html.TextBox("Count", null) %>
, которое будет извлекать совпадающее значение (с именем «Count») из ModelStateDictionary.
Но даже в этом случае явный переход в
<%= Html.TextBox("Count", Model.Count) %>
приводит к тому же поведению, описанному alex2k8.