ASP .NET MVC: Html.Radiobutton onclick устанавливает ViewData[]

Я новичок в ASP .NET MVC и веб-программировании в целом.

Мне интересно, есть ли способ установить переменные ViewData при выборе переключателя, но до отправки страницы.

Возможно, я ошибаюсь, но я пытаюсь создать форму, в которой новые поля добавляются в зависимости от того, какой переключатель выбран. Итак, что я хочу сделать, так это то, что при нажатии переключателя он устанавливает переменную ViewData, и на основе этой переменной ViewData другое частичное представление загружает соответствующие поля ниже текущего поля.

Я предполагаю, что должен быть какой-то способ выполнения onclick="некоторой функции C#, которая устанавливает ViewData(args)"

Спасибо


person Community    schedule 11.06.2009    source источник


Ответы (2)


Есть несколько способов сделать это.

1) У вас может быть форма Ajax, в которой через Javascript вы отправляете форму обратно и проверяете, является ли это запросом Ajax, возвращая частичное представление в указанный вами div.

2) Разместите форму как есть и проверьте на стороне сервера, чтобы увидеть, был ли нажат переключатель, и, таким образом, повторно отобразить форму с видимыми новыми параметрами.

Если вы выберете первый подход, будет достаточно легко перейти ко второму для тех, у кого не включен Javascript.

На самом деле нет событий «onclick», как я предполагаю, вы привыкли к веб-формам, вам в основном придется свернуть свой собственный Javascript для обработки таких вещей. Как только вы сделаете несколько, я думаю, вы обнаружите, что это действительно не так уж и плохо, с тем преимуществом, что у вас будет больше контроля над тем, что вы делаете, и благодаря этому вы лучше поймете общую картину.

person Blair Scott    schedule 11.06.2009

ViewData существует только на стороне сервера и существует только на время существования запроса. Таким образом, после отображения страницы объект больше не существует.

Некоторые альтернативные подходы, которые вы можете использовать:

1 - Используйте клиентский Javascript для добавления формы и ввода по мере необходимости. Дополнительная информация здесь: Содержимое динамической формы ASP.NET MVC и JQuery

2 - Предварительно отобразите новую форму, но скройте ее с помощью CSS и отобразите при нажатии соответствующей кнопки-переключателя. Подробнее здесь: развернуть свернуть поле html Firefox

3 - Используйте AJAX для отображения новой формы при нажатии соответствующего переключателя. Дополнительная информация здесь: http://www.asp.net/learn/mvc/tutorial-32-cs.aspx

person D'Arcy Rittich    schedule 11.06.2009