質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

解決済

1回答

6485閲覧

ASP.Net MVCのドロップダウンリストの変更でアクションを起こしたい

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

0クリップ

投稿2018/08/10 02:35

編集2018/08/10 05:37

現在c#のMVC5を学習中です。

ドロップダウンリストを変更した際に、その変更された値をもとにアクションを起こしてコントローラー側で
いろいろな処理を書きたいと考えているのですが、どうすればドロップダウンリストの変更をコントローラー側に伝えることができるでしょうか。

cshtml

1@{ 2 ViewBag.Title = "HTMLチェックツール"; 3} 4@using MvcCheckHtml.Models 5 6<h1>HTMLチェックツール</h1> 7<input type="file" name="uploadFile" /> 8 9<section id="work"> 10 <h2>チェック内容</h2> 11 <div class="conteiner"> 12 <h3>案件名:</h3> 13 @model ClientContext 14 @Html.DropDownListFor( 15 model => model.Clients, 16 (IEnumerable<SelectListItem>)ViewBag.SelectOptions, 17 " 選択してください ", 18 new { @class = "title_list" } 19 //↑ここで生成したドロップダウンリストの値を変更したことをコントローラーに伝えて色々な処理を起こしたい 20 ) 21 </div> 22 23 24</section>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/08/10 05:34

Entity Framework のタグが付いてますが、今回の話とは関係ないのでは?
退会済みユーザー

退会済みユーザー

2018/08/10 05:37

失礼しました、変更しました。
guest

回答1

0

ベストアンサー

ドロップダウンリストを変更した際に、その変更された値をもとにアクションを起こしてコントローラー側で

いろいろな処理を書きたいと考えているのですが、どうすればドロップダウンリストの変更をコントローラー側に伝えることができるでしょうか。

MVC の Html ヘルパーの DropDownList からレンダリングされる html ソースは単純に以下のような select 要素と option 要素ですので、それをユーザーが操作して項目の選択を変える等しても、クライアント側では select 要素の選択変更以外の何も起こりませんし、当然サーバー側には何の影響もないです。

<select id="id" name="id"> <option value="1">Mr. Orlando Gee</option> <option value="2">Mr. Keith Harris</option> <option value="3">Ms. Donna Carreras</option> </select>

ASP.NET Web Forms の DropDownList コントロールの場合は AutoPostBack プロパティを使って何とかするという手段がありますが、MVC にはそういったものはないので、自力で何とかする他なさそうです。

自分が考えられる方法としては、

(1) <input type="submit" ... 型のボタンを追加して、ユーザーにドロップダウンリストの選択をしたもらった後でそのボタンをクリックしてもらい、アクションメソッドに選択情報を送信して処理してもらう。

(2) DropDownList からレンダリングされる html の select 要素の change イベントにリスナをアタッチし(JavaScript の話です)、そのリスナで ajax を利用して選択情報を送信して処理してもらう。

ということがありますが、いかがですか?

投稿2018/08/10 05:31

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/08/10 05:41

大変わかりやすい回答ありがとうございます! windowsフォームのようなSelectedChangedイベント的なものが無いかと期待して探していましたが、頂いた説明で納得しました。 今回は、サブミット用のボタンを用意して対応しようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問