У меня есть форма с этими заявлениями:HiddenInput не едет
@Html.HiddenFor(model => model.CompanyId)
@Html.HiddenFor(model => model.OriginalDailyTimeOption)
@Html.HiddenFor(model => model.OriginalWorkWeekStartDay)
Когда я Просмотр источника, я вижу эти элементы в виде элемента, и когда я отправить форму, эти свойства все правильно возвращенное ,
Теперь, я читал об использовании [HiddenInput]
в моем ViewModel, поэтому я попытался это:
[HiddenInput(DisplayValue = true)]
public int CompanyId { get; set; }
// Original values
[HiddenInput(DisplayValue = true)]
public DayOfWeek OriginalWorkWeekStartDay { get; set; }
[HiddenInput(DisplayValue = true)]
public bool OriginalDailyTimeOption { get; set; }
и я удалил @Html
заявления, которые у меня были раньше.
Теперь, когда я вижу источник, я не вижу элементов в форме, и когда я отправляю форму, значения не отображаются при действии контроллера. Я также попробовал атрибут HiddenInput
без (DisplayValue = true)
, но получил те же результаты. Я также попробовал DisplayValue = false.
Есть ли что-то, что я делаю неправильно с моими атрибутами HiddenInput? (Для записи, я тестирование с IE 11)
Вопрос в том, почему я должен иметь HiddenFor в форме, если я использую атрибут HiddenInput? (И для записи, хотя я и не показывал ее, у меня есть атрибут HttpPost для моего действия.) –
Форма html будет публиковать только те значения, которые находятся внутри элемента формы на странице формы. Они не будут опубликованы, если они находятся за пределами html-формы. – GlobalJim
В документации для HiddenInputAttribute говорится: «Представляет атрибут, который используется для указания того, должно ли значение свойства или поля отображаться как скрытый элемент ввода». Я беру «быть оказанным», помещая его внутри элемента формы. Если вы понимаете, пожалуйста, скажите мне, для чего нужен HiddenInput. Благодарю. –