ASP .NET MVC: Html.Radiobutton onclick - установить ViewData [""] - PullRequest
1 голос
/ 11 июня 2009

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

Мне интересно, есть ли способ установить переменные ViewData, когда выбрана радиокнопка - но перед отправкой страницы.

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

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

Спасибо

Ответы [ 2 ]

2 голосов
/ 11 июня 2009

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

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

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

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

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

2 голосов
/ 11 июня 2009

ViewData существует и существует только на стороне сервера в течение срока действия запроса. Итак, после визуализации страницы объект больше не существует.

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

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

2 - предварительно отрендерить новую форму, но скрыть ее с помощью CSS и показать ее при нажатии соответствующей кнопки-переключателя. Больше информации здесь: развернуть свернуть HTML-поле Firefox

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...