DefaultModelBinder неправильно обрабатывает скрытые входные данные со значениями bool

#c# #asp.net-mvc-3

#c# #asp.net-mvc-3

Вопрос:

Я использую @Html.HiddenFor(model => model.UseOldFormat) для отображения значения bool, которое отображается в <input ... type="hidden" value="1" /> Когда я отправляю форму, я получаю UseOldFormat как всегда false). Есть ли какое-либо лучшее решение, чем просто делать что-то подобное @Html.Hidden("UseOldFormat", Model.UseOldFormat?"true":"false") ?

Комментарии:

1. зачем использовать helper? попробуйте обычный html: <тип ввода=»скрытое» значение = «<%= Html. AttributeEncode (модель. Id) %>» id=»Id» name=»Id» />

2. Я думал, что это экономит некоторое время. Похоже, я был неправ: (

3. Я пытался использовать ‘@Html. HiddenFor(модель => модель. Используйте moldformat)’ в другом проекте, и он отображается как ‘<input … тип=»скрытое» значение =»true» />’. Что могло быть не так с HiddenFor в первом проекте?

4. Я понял, в чем проблема. У меня есть UseOldFormat=1 в get parameters и по какой-то причине @Html. HiddenFor(модель => модель. UseOldFormat) отображает его значение.

5. сделал hidden.для отображения имени ввода? PS. Для меня большинство временных помощников — это не самый быстрый способ 🙂