1

私は ASP .NET MVC と Web プログラミング全般に不慣れです。

ラジオボタンが選択されたときに ViewData 変数を設定する方法があるかどうか疑問に思っていますが、ページが送信される前です。

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

onclick="ViewData(args) を設定するいくつかの C# 関数" を何らかの方法で実行する必要があると思います。

ありがとう

4

2 に答える 2

2

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

1)Javascriptを介してフォームをポストバックし、それがAjaxリクエストであるかどうかを確認する、Ajaxフォームを作成します。そこで、指定したdivに部分ビューを返します。

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

最初のアプローチを採用した場合、Javascriptが有効になっていない場合は、2番目のアプローチに簡単に移行できます。

あなたがWebformsから慣れていると仮定しているので、実際には「onclick」イベントはありません。基本的に、そのようなことを処理するには、独自のJavascriptをロールする必要があります。少しやってみると、それほど悪くはないことがわかると思います。自分がしていることをより細かく制御できるという利点があり、それによって全体像をよりよく理解できるようになります。

于 2009-06-11T13:50:18.080 に答える
2

ViewData は、リクエストの存続期間中のみ存在し、サーバー側にのみ存在します。そのため、ページがレンダリングされると、オブジェクトは存在しなくなります。

あなたが取ることができるいくつかの代替アプローチ:

1 - クライアント側の Javascript を使用して、必要に応じてフォームと入力を追加します。詳細はこちら: ASP.NET MVC & JQuery 動的フォーム コンテンツ

2 - 新しいフォームを事前にレンダリングしますが、CSS を介して非表示にし、適切なラジオ ボタンをクリックすると非表示を解除します。詳細はこちら: 折りたたみ HTML フィールドを展開する Firefox

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

于 2009-06-11T13:45:52.113 に答える