В моем UploadFilesViewModel
У меня есть свойство:
[HiddenInput(DisplayValue = false)]
public bool DirBlocked { get; set; }
и, на мой взгляд, следующая разметка для него:
@Html.HiddenFor(m => m.DirBlocked)
Когда я выполняю следующий код в своем действии GET:
var model = new UploadFilesViewModel { UserBaseDir = await GetUserBaseDirAsync() };
model.DirBlocked = true;
return View(model);
Скрытый ввод для DirBlocked
выглядит следующим образом:
<input data-val="true" data-val-required="The DirBlocked field is required." id="DirBlocked" name="DirBlocked" type="hidden" value="True">
Тем не менее, когда я выполняю следующий код в действии POST:
// Hard 'true' just for debugging.
//if (files.Any() && !HasDirAccess(model.UploadDir))
if (true)
{
model.DirBlocked = true;
return View(model);
}
Тот же скрытый ввод отображается следующим образом:
<input data-val="true" data-val-required="The DirBlocked field is required." id="DirBlocked" name="DirBlocked" type="hidden" value="False">
То есть он теряет значение true
, присвоенное свойству DirBlocked
. Что может быть причиной этого? Обычно, когда я выполняю return View(model)
в действии POST, все свойства модели отображаются правильно, так как они установлены.