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

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

新規登録して質問してみよう
ただいま回答率
85.49%
MVC

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

ASP.NET

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

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

6698閲覧

DropDownListの選択値って何?どこいくの?

miinooos.stella

総合スコア1

MVC

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

ASP.NET

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

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

1クリップ

投稿2020/09/06 06:04

編集2020/09/06 13:35

MVC、Visual Basic、SQLを用いてデータベース管理画面の作成をしています。
①DBから取得してきた値を 単一を選択するドロップダウンリスト の値としてセット
②ユーザーが実際に画面に表示されたリストからどれかを選択した状態で検索ボタン押下
③選択された値で再度DBで絞り込み検索
④画面に一覧表示
のような動きを作成しています。

環境はVisual Stadio MySQLです。

知りたいこと

コードに問題がある というわけではないのですが純粋に
「ドロップダウンリストで選択されたもの」は
・なにで(文字列なのか番号なのか...?)かえってくるんだろう
・どこに値として渡されるのだろう
とふと思い、検索をしてみました。

単純すぎますが、
「ASP.Net DropDownList 選択値 何」
「ASP.Net DropDownList 選択値 どこへいく」
「ASP.Net DropDownList 選択値 取得」
等で調べましたが逆に分からなくなってしまいました。

求める回答

・DropDownListの選択値は何ですか
例:DBで取得した値 → ViewModelのプロパティに渡す
パンダ
うさぎ
ライオン
でDropDownListから、例えば「うさぎ」を選択した際に
「うさぎ」のような文字列が渡されるのか
上から=0 =1 =2のように内部的にナンバリングされていて= 1が渡されるのかもしくは全く違うものか

・DropDownListの選択値は 検索ボタン押下時にどこへ渡るのか
予想はViewModelですかね

です。
何卒よろしくお願いいたします。

追記

開発環境 Windows10 Visual stadio2019 .NET Framework MVC5 です。
また、初めての質問で大変申し訳ないのですが、別にエラーや問題があるわけではなく異常なく動いたうえでの素朴な疑問になります。
疑問点は求める回答の項をご覧ください。

※問題があるわけではないので問題点・エラーの項の名称を知りたいことに変更しました。

追記2

Controller

Visual

1' 初期表示 2<HttpGet> 3Pubric Function Animal(Model as AnimalViewModel)As ActionResult 4 Dim AnimalM As AnimalModel 5 6 Return View(AnimalM.AnimalGet) 7End Function 8 9' 再帰 10<param name="argModel">ビューモデル</param> 11<return>ActionResult</return> 12<HttpPost, ValidateInput> 13Pubric Function SearchAnimal(Model as AnimalViewModel)As ActionResult 14 ※まだ組み立ててないのでないです 15 Return View《選択されたものから再度DBでSELECTした検索結果を返したい》 16End Function

AnimalModel

Visual

1Pubric Function AnimalGet()As AnimalViewModel 2 Dim selectanimal As New AnimalViewModel 3 4 ' DBを呼び出してリスト取得 5 Using db = New Dbclass.AnimalDb 6 Using dt = New DataTable 7 selectanimal.Animallist = db.GetAnimalName(dt) 8 End Using 9 End Using 10 11 Return selectanimal 12End Function 13 14Public Property Animallist as Selectlistitem

AnimalDb

Visual

1' メソッド 2Pubric Function GetAnimalName(ByVal argDt As DataTable)As SelectList 3 4 Return New SelectList(Me.getanimalnameforSql, argDt.Columns.ColumnName) 5End Function 6 7 8' SQL 9Private getanimalnameforSql As String = <Query><![CDATA[ 10 SELECT 11 Name 12 FROM 13 Animal 14]]</Query>.Value.Trim()

AnimalViewModel

Visual

1'''動物の名前リスト 2Public Property Animallist as Selectlist

view

<div class="row mt-3"> <div class="col mt-3"> <p>どうぶつさんをせんたくしてボタンをおそう!</p> </div> </div> @Using Html Beginform() @<text> <div class="from-row form-group"> <div class="col mt-3"> @Html.DropDownListfor(Function(model) model.Animallist, Model.Animallist New With{.class = "form-control form-control-sm" }) <div> <div> </text> End Using

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2020/09/06 09:58

開発環境(OS, Visual Studio のバージョン、.NET Framework / Core どちらかとそのバージョン)を書けませんか?
退会済みユーザー

退会済みユーザー

2020/09/06 10:00

簡単なサンプルでいいのでコードを書いて、それにおけるあなたの疑問点を説明してください。
退会済みユーザー

退会済みユーザー

2020/09/06 11:19

あなたの言う DropDownList のサンプルコードを書いてください。MVC でも書き方はいろいろあります。書けないと言うなら自分は撤退します。
miinooos.stella

2020/09/06 13:03

今から書くので少々お待ちください
退会済みユーザー

退会済みユーザー

2020/09/06 14:38

書かれたコードに DropDownList は見つからないのですが、どれのことを言ってますか?
guest

回答1

0

ベストアンサー

・DropDownListの選択値は何ですか

DropDownList に渡す SelectList オブジェクトの内容、即ちそれにより DropDownList から html ソースがどのような形に生成されるかによります。

質問者さんのコードでは AnimalModel の db.GetAnimalName(dt) がその SelectList オブジェクトになるようですが、質問のコードからは中身が分からないので、質問のケースで「選択値」が何になるかは分かりません。

例を書くと、以下の記事のように、

DropDownList への SelectList の渡し方
http://surferonwww.info/BlogEngine/post/2019/02/25/how-to-give-selectlist-object-to-dropdownlist.aspx

SelectList を、

ViewBag.CategoryID = new SelectList(db.Categories, "CategoryID", "CategoryName", products.CategoryID);

というように生成して View の DropDownList に渡した場合、それから生成される html ソースは以下のようになります。

<select class="form-control" id="CategoryID" name="CategoryID"> <option selected="selected" value="1">Beverages</option> <option value="2">Condiments</option> <option value="3">Confections</option> <option value="4">Dairy Products</option> <option value="5">Grains/Cereals</option> <option value="6">Meat/Poultry</option> <option value="7">Produce</option> <option value="8">Seafood</option> </select>

この状態でボタンクリックで送信する(= form を submit する)と、上の option の中では Beverages が選択されているので、それに該当する option 要素の value である 1 が送信されます。具体的には、select 要素の name 属性が CategoryID となっているのでそれと value の値が組み合わされて CategoryID=1 というデータが送信されます。

・DropDownListの選択値は 検索ボタン押下時にどこへ渡るのか

上に述べたように CategoryID=1 というようなデータが送信されますが、「どこへ渡るのか」はアクションメソッドで取得するためのコードがどのように書かれているかによります。

質問者さんのケースでは、コントローラーで AnimalViewModel クラスの Aniimallist プロパティに SelectList を設定して、 AnimalViewModel をビューに渡しているようですが、例えば以下のコードのような簡単な SelectList を作って、

public ActionResult DropDown() { AnimalViewModel model = new AnimalViewModel(); model.Animallist = new SelectList(new List<string> { "パンダ", "うさぎ", "ライオン" }); return View(model); }

ビューに以下のようにして渡した場合、

@model Mvc5App.Controllers.AnimalViewModel @using (Html.BeginForm()) { @Html.DropDownListFor(m => m.Animallist, null) <br /> <input type="submit" value="Post" /> }

それから生成される html ソースは以下のようになります。select 要素の name 属性がプロパティ名 Animallist になっているところに注目してください。

イメージ説明

例えば「うさぎ」を選んで送信すると、以下のように Animallist=%E3%81%86%E3%81%95%E3%81%8E というように送信されます(option 要素に value 属性がないので「うさぎ」という文字列が送信されます。「うさぎ」の UTF-8 コードをパーセントエンコーディングすると %E3%81%86%E3%81%95%E3%81%8E になります)。

イメージ説明

それをアクションメソッドで取得するためには、例えば以下のように引数の名前をプロパティ名 animallist(大文字小文字は区別しない)にしておけばそれにバインドされます。

イメージ説明

投稿2020/09/07 04:46

編集2020/09/07 04:52
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

miinooos.stella

2020/09/07 08:10

お忙しい中ありがとうございます。 すごく分かりやすいです!! 私としては「うさぎ」のような文字列で取得したいので(※このあと再度DBでWHERE '(選択したリストの値)'といった絞り混みでの取得)値についてはこのままいきます。 選択値がどこにいくかわからなかったため、コードの中で迷子になってしまっていましたがなるほどPost先で受け皿(?)を作れば分かりやすいですね!そんなやり方もあるんですね… いろいろと分かりにくい質問の仕方をしてしまい申し訳ありませんでした。 本当にありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問