2014-12-23 3 views
1

У меня есть форма с этими заявлениями: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)

ответ

0

Включают [HttpPost] Кроме того, убедитесь, что hiddenfor находятся в вашей форме

[HttpPost] 
public ActionResult action(Model model) 
{ 
    Model _model = new Model(); 
    _model.CompanyId = model.CompanyId; 
    etc... 


} 
+0

Вопрос в том, почему я должен иметь HiddenFor в форме, если я использую атрибут HiddenInput? (И для записи, хотя я и не показывал ее, у меня есть атрибут HttpPost для моего действия.) –

+0

Форма html будет публиковать только те значения, которые находятся внутри элемента формы на странице формы. Они не будут опубликованы, если они находятся за пределами html-формы. – GlobalJim

+0

В документации для HiddenInputAttribute говорится: «Представляет атрибут, который используется для указания того, должно ли значение свойства или поля отображаться как скрытый элемент ввода». Я беру «быть оказанным», помещая его внутри элемента формы. Если вы понимаете, пожалуйста, скажите мне, для чего нужен HiddenInput. Благодарю. –

1

Я нашел это в другом посте (по podiluska), когда я искал «разницу между Html.HiddenFor & HiddenInput attribute»:

«HiddenInput - это атрибут в поле в (представлении) модели, что означает, что он может использоваться для нескольких видов и указывает, что это поле должно быть скрыто где бы он ни был предоставлен редактором для помощника ».

Страница MSDN в HiddenInputAttribute ничего не говорит о редакторе, так что это то, чего мне не хватало.

 Смежные вопросы

  • Нет связанных вопросов^_^