2015-07-27 3 views
1

Я разрабатываю веб-приложение под ASP.NET MVC 4 с видами Razor.DropDownListДля значения пуста после возврата к контроллеру

теперь я заметил, что SomethingID находится в ViewModel пустой после Postback (на контроллер)
если я только добавить атрибут disabled HTML для DropDownListFor:

// SomethingID becomes 0: 
@Html.DropDownListFor(m => m.SomethingID, Model.SomethingList, new { @disabled = "disabled" }) 

Это если не произойдет Я удалить disabled атрибут, SomethingID имеет правильное значение, то:

// SomethingID keeps its value (greater than 0): 
@Html.DropDownListFor(m => m.SomethingID, Model.SomethingList) 

У кого-то уже была эта проблема? На данный момент я пытаюсь решить проблему с помощью jQuery, сохраняя значение в поле HiddenFor.

Но мой вопрос: было ли лучшее решение? Предполагается ли поведение Microsoft, что Dropdownlists должны забыть все, как только они будут отключены? Я делаю ошибку? Это ошибка?

Примечание: У меня есть 5 Dropdownlists в моем представлении, все 5 показывают одинаковое поведение.

Большое спасибо заранее!

+1

Установка входа для отключения предотвратит его публикацию. Вы можете использовать «Readonly», а не отключен. См. Этот вопрос: http://stackoverflow.com/questions/1355728/values-of-disabled-inputs-will-not-be-submited – silencedmessage

+0

Большое спасибо вам за подсказку !!! Я попробую. –

+1

Отлично !!! Это решает мою проблему !!! Большое спасибо!!! :-) –

ответ

4

Простая причина, по которой вы видите это, состоит в том, что элементы, у которых есть отключенный атрибут, не имеют значений, отправленных на сервер. См. Это SO post для более подробной информации.

+0

Большое спасибо за быстрый ответ! Я должен подождать несколько минут, прежде чем я смогу принять ваш ответ. –

+0

Добро пожаловать. Вы в основном обнаружили это самостоятельно, удалив атрибут «disabled» и заметив, что значение было опубликовано. – Ric

+1

Еще раз спасибо! :-) –

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