2011-08-12 4 views
1

私はMVC3とRazorのプロジェクトを持っています。 私は自分のプロジェクトでjavascriptなしですべてをやっていますし、将来はJSなしですべてが機能するときはJS機能を追加します。 問題は、私はカミソリのページを持っていることです。モデルから選択したものを塗りつぶして、必要なものは、選択オプションが変更されたときに別の選択が満たされなければならないということです。 私のアイデアは、モデルでは、fillmを得るための2番目の選択が必要なオブジェクトのコレクションがあり、最初のselectのonchangeイベントがトリガされたときに、モデル上のリストを満たすコントローラ上のメソッドを呼び出しますビュー側では、2番目の選択肢をforeachでリストに埋めます。 私の質問は..私はどのようにonchangeイベントを発射するのですか? 私はHtml.DropDownListなどを使用していないことに注意してください。しかし、必要であれば、私は行います。javascriptなしでMVC3の最初のものをonchangeで2番目の選択を埋める

ありがとう、私はあなたが私を助けてくれることを願っています!

答えて

1

selectonchangeイベントにはJavascriptが必要です。 Javascriptが無効になっているときに処理するには、通常、<noscript>タグ内に「更新」submit buttonのようなものを追加して、サーバーポストを使用して選択を更新します。 <noscript>タグは、Javacriptが無効になっている場合にのみ表示されます。

+0

私は 'noscript'タグを使用しないことを選択します。 javascriptを使用してボタンを追加して削除する(表示:なし)ことをお勧めします。 JavaScriptが有効になっていない場合、ボタンは削除されません。これはより実証的なテストです。ボットンが存在するか、テスト対象の機能によってボットンが削除されます。 – Bazzz

+0

+1素晴らしいアイデア - OPの場合でも、このアプローチではコントローラーのサイズが大きくなることを覚えておいてください。 – Tejs

+0

@Bazzz、どちらの方法でも問題ありませんが、一般的には非Javascriptのバージョンを表示し、これを削除するためにJavascriptを使用するのが通常の方法です。私は要素内のonchangeなどを使用するのではなく、この方法ですべてのイベントを追加します。あなたのHTMLからあなたのJavaScriptを分離します:o) –