|
Как передать в контроллер выбранное значение из DropDownListFor(...) ?
|
|||
---|---|---|---|
#18+
По кривому я могу это делать через скрипт и дополнительный элемент типа HiddenBox (DDFor ---> script ---> HiddenBox ---> контроллер). А как нибудь нормальным образом без этой цепочки - у меня не получается! Простейшая програмка: Контроллер: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43.
Предсталение: Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Выпадающий список прекрасно отображается, однако, при нажатии на кнопку в аргумент контроллера Index1 ничего не попадает. В чём причина? С уважением ВВГ ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2018, 13:05 |
|
Как передать в контроллер выбранное значение из DropDownListFor(...) ?
|
|||
---|---|---|---|
#18+
ValGer, Пошарил ещё в интернете - как оказывается, проблема-то застарелая! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2018, 13:34 |
|
Как передать в контроллер выбранное значение из DropDownListFor(...) ?
|
|||
---|---|---|---|
#18+
ValGerпроблема-то застарелая! Так и живём. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2018, 14:48 |
|
Как передать в контроллер выбранное значение из DropDownListFor(...) ?
|
|||
---|---|---|---|
#18+
Агнец за бортом, Прилёг после обеда подремать и во сне пришло решение проблемы. Оно простое и связано с Html-раcширением всех элементов ...For(...). Простейший пример: @Html.TextBoxFor(x => x.Id, htmlAttributes: new { id="idTextBox"}) - превращается в следующий код: <input data-val="true" ... id="idTextBox" name="Id" type="text" value="2" /> - (часть параметров опущена) Чтобы контроллер воспринял эту информацию в списке аргументов его метода должно в точности написанное имя name="Id" (Это общеизвестно, но иногда забывается ;-( ) Код: c# 1. 2. 3. 4. 5. 6.
С учётом сказанного модифицируем классы, контроллер и представление: Класс City - без изменений Класс CityListClass дополняем свойством Id, которое и будет принимать информацию об идентификаторе выбранного элемента списка Код: c# 1. 2. 3. 4. 5.
В соответствии со сказанным выше модифицируем представление mod => mod.Id . Ошибка состояла в том, что ранее мы пытались передать в контроллер весь список - это неправильно! Теперь после модификации: Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Теперь всё работает нормально - после нажатия на кнопку в аргументе метода контроллера Index1 получаем идентификатор выбранного элемента (см. рисунок). ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2018, 17:11 |
|
|
start [/forum/topic.php?fid=18&fpage=19&tid=1355185]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
others: | 260ms |
total: | 421ms |
0 / 0 |