У меня есть новое приложение MVC 4 с довольно простым представлением/контроллером. Связанная модель содержит пару свойств, которые я сопоставил с полями Скрытые. Когда страница отображается в первый раз (например, с помощью действия HttpGet), все выглядит нормально. Но когда форма Post'ed, выбирая кнопку "Отправить", итоговая модель, представленная в Action, больше не имеет значений скрытого поля. Вот прохождение подробностей.
Вот пример Модели:
public class Application
{
public bool ShowSideBars { get; set; }
}
Вот начальный Контроллер * Action * (который, кажется, работает нормально):
[HttpGet]
public ActionResult Application()
{
var model = Request.ParseFromQueryString<Application>();
model.ShowSideBars = true;
return View(model);
}
Это сопоставляется с Вид следующим образом:
<fieldset>
@Html.HiddenFor(m => m.ShowSideBars)
...
</fieldset>
В результате создается следующая разметка, которая будет отображаться внутри набора полей:
<input data-val="true" data-val-required="The ShowSideBars field is required." id="ShowSideBars" name="ShowSideBars" type="hidden" value="True" />
Примечание. Я уверен, что я знал, почему MVC решила добавить контент "... поле обязательно", когда я не указал его по мере необходимости, но для другого вопроса
Вот Действие, которое вызывается при отправке формы. На этом этапе вышеупомянутое свойство больше не будет установлено в ' true.
[HttpPost]
public ActionResult Application(Application application)
{
// Other work done here
return View(application);
}
В настоящее время нет настраиваемых привязок модели. Кроме того, я тестировал некоторые другие типы данных, и я вижу то же самое.
Может кто-нибудь объяснить, почему скрытые значения формы не возвращаются? Я просто делаю все это неправильно?