2009-06-11 19 views
1

私は、ASP .NET MVCおよびWebプログラミング全般については初めてです。ASP .NET MVC:Html.Radiobutton onclick - set ViewData [""]

ラジオボタンが選択されているが、ページが送信される前にViewData変数を設定する方法があるのだろうかと思います。

多分私は間違ったツリーを吠えているかもしれませんが、私がしようとしているのは、ラジオボタンが選択されたことに基づいて新しいフィールドが追加されるフォームを作成することです。ですから、ラジオボタンをクリックしてViewData変数を設定し、そのViewData変数に基づいて異なる部分ビューが現在のフィールドの下の適切なフィールドをロードするときに、私がしたいことがあります。

私はonclickの=「のViewDataを設定し、いくつかのC#関数(引数)」

おかげ

答えて

2

これについては、いくつかの方法があります。

1)Javascriptを通してフォームをポストバックし、Ajaxリクエストかどうかを確認するために、指定したdivに部分的なビューを返すことでAjaxフォームを作成できます。

2)そのままフォームを送信し、ラジオボタンがクリックされたかどうかを確認して、新しいオプションが表示されたフォームを再表示します。

最初のアプローチをとると、Javascriptを有効にしていない人にとっては2番目のアプローチに落ち込むのは簡単です。

私はあなたがWebformsから慣れていると仮定しているので、本当に "onclick"イベントはありません。あなたは基本的には、このようなことを処理するために独自のJavascriptをロールバックする必要があります。いくつかのことをしてしまえば、それは本当にそれほど悪くないことがわかります。あなたがやっていることをよりよくコントロールし、より大きな画像をより深く理解することができます。

2

のViewDataのみ存在し、唯一の寿命のために、サーバ側に存在することの何らかの方法がなければならないと想像しますリクエスト。したがって、ページがレンダリングされると、オブジェクトは存在しなくなります。 - 使用するクライアント側のJavaScriptを必要に応じてフォームや入力を追加する

1:

いくつかの代替は、あなたが取ることができ近づきます。さらに詳しい情報: ASP.NET MVC & JQuery Dynamic Form Content 2 - 新しいフォームを事前にレンダリングしますが、CSSで非表示にして、適切なラジオボタンをクリックすると表示されます。詳細情報: expand collapse html field Firefox

3 - 適切なラジオボタンがクリックされたときに新しいフォームをレンダリングするために、AJAXを使用します。詳細はこちら: http://www.asp.net/learn/mvc/tutorial-32-cs.aspx