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

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

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

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

ラジオボタン

ラジオボタンはフォームに使われる要素のひとつであり、ユーザに限られた選択肢からひとつの答えを選んでもらうというものです。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

ASP.NET MVC Framework

ASP.NET MVC Frameworkは、MVCパターンをベースとした、マイクロソフトのウェブアプリケーション開発用のフレームワークです。

Q&A

解決済

1回答

1189閲覧

c# asp.net ラジオボタン、ドロップダウンリスト

toukyoutaro

総合スコア13

C#

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

ラジオボタン

ラジオボタンはフォームに使われる要素のひとつであり、ユーザに限られた選択肢からひとつの答えを選んでもらうというものです。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

ASP.NET MVC Framework

ASP.NET MVC Frameworkは、MVCパターンをベースとした、マイクロソフトのウェブアプリケーション開発用のフレームワークです。

0グッド

0クリップ

投稿2020/05/26 12:52

編集2020/05/27 03:54

お疲れ様です。
https://teratail.com/questions/264721の質問の続きなのですがコードの意味が分からず質問しています。
visual stadio2019でasp.net mvcを使い開発をしていますがラジオボタンやドロップダウンリストの

コード ビュー @Html.DropDownListFor( model => model.Title, // プロパティ (IEnumerable<SelectListItem>)ViewBag.SelectOptions, // 選択オプション " 選択してください ", // 空オプション new { @class = "title_list" } // その他の属性 ) コントロール public ActionResult Select() { // 選択ボックスのオプションを準備 ViewBag.SelectOptions = new SelectListItem[] { new SelectListItem() { Value="jQuery Tips", Text="jQuery Tips" }, new SelectListItem() { Value="jQuery リファレンス ", Text="jQuery リファレンス " }, new SelectListItem() { Value="jQuery サンプル集 ", Text="jQuery サンプル集 " } }; )

なんかのプロパティの部分がなんなのか分かりません。モデルというのはなんなのでしょうか?
名前やグループみたいなものなのでしょうか?

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2020/05/26 13:24

一度 https://teratail.com/help/question-tips を読んでください。そこにも書いてありますが、「自分が今『何がわからないのか』がわかっていて、言語化できている」というところが不十分で、「何がわからないかわからない人から質問を受けても、答える側も困ってしまいます」状態です。
退会済みユーザー

退会済みユーザー

2020/05/27 01:07

前のスレッド https://teratail.com/questions/264721 の続きですよね。それが分かるように、質問欄を編集して前のスレッドの URL を追記して続きであることを書いてください。 前のスレッドとコードは同じですが、その時の質問は解決したのでは? 実際は解決してない? 解決したけどコードの意味が分からないから質問している? そのあたりをきちんと書いてください。 コントローラーのコードもアップしてください。特にそれで Model と ViewBag をどのように定義して View に渡しているかが分かるように。 それから、前にもお願いしましたが、開発環境を書いてください。Visual Studio のバージョン、.NET Framework なのか Core どちらかとそのバージョンなどを質問欄を編集して追記してください。
退会済みユーザー

退会済みユーザー

2020/05/27 02:59

コントローラーのコードもアップしてください。特にそれで Model と ViewBag をどのように定義して View に渡しているかが分かるように。
退会済みユーザー

退会済みユーザー

2020/05/27 03:27

「Model と ViewBag をどのように定義して View に渡しているか」によって View 側の話がいろいろ違ってくるので聞いてます。スルーしないできちんと答えてください。言われていることの意味が分からず答えようがないならその旨書いてください。
退会済みユーザー

退会済みユーザー

2020/05/27 03:40 編集

> このコードはネットで拾ってきたものなのでコントロールはありません。 あるけど・・・ (自分はその本を持っているわけではなく、ググったら出てきたものです) https://books.google.co.jp/books?id=SAlTBgAAQBAJ&pg=PA106&lpg=PA106&dq=(IEnumerable%3CSelectListItem%3E)ViewBag.SelectOptions&source=bl&ots=l30PHwrlhi&sig=ACfU3U2uBOgXb8Af2lSfzJENIFODo6uvwg&hl=ja&sa=X&ved=2ahUKEwi-m8uKjtPpAhUIfnAKHe1-CiwQ6AEwBHoECAoQAQ#v=onepage&q&f=false そもそも、質問の View のコードはコントローラーがないと意味がないのですよ。
退会済みユーザー

退会済みユーザー

2020/05/27 05:20 編集

特にそれで Model と ViewBag をどのように定義して View に渡しているかが分かるようにと言ったのですが、Model の方は? 本の View のコードで @model MvcView.Models.Article となっていますが、それの Article が何かということです。 ネットで拾ってきたコードだからそれが分からないと言うことなら、そもそも拾ってきた意味不明のコードのことをこういう場所で質問するというやりかた間違ってます。
toukyoutaro

2020/05/27 08:38

ここで言うモデルというのはMVCのモデルとは別なのでしょうか?
退会済みユーザー

退会済みユーザー

2020/05/27 09:13 編集

特にそれで Model と ViewBag をどのように定義して View に渡しているかが分かるようにと言ったのですが、Model の方は? ・・・と聞いているのが先なのだから、あなたは質問で返すのではなく、まずはその質問に答ましょう。それがマナーだと思いませんか。そもそも、MVC でいうモデルとは何かなどという話はしてないのだから。 と言うより、もう回答しているのだから、その回答があなたの期待に合っているかなど、そのフィードバックをまずするようにしてください。
toukyoutaro

2020/05/27 16:25

すみません正直内容が分からな過ぎて、、、、
退会済みユーザー

退会済みユーザー

2020/05/27 22:09

回答にフィードバックしてください。ここでの話はこれ以上通じそうもないですから。
guest

回答1

0

ベストアンサー

これ以上は聞いても答えられないようなので、

モデルというのはなんなのでしょうか?

・・・にだけ答えます。

質問に書いたコードの載っている本の View のコードの一行目に @model MvcView.Models.Article となっていますよね。

コントローラーのアクションメソッドで Article クラスを初期化してそれへの参照を View に渡しているようですが、View に @model MvcView.Models.Article を書くことにより View で Model として受け取ることができます。

DropDownListFor の引数 model => model.Title の model もそれです。

なお、「Model と ViewBag をどのように定義して View に渡しているか」によって View 側の話がいろいろ違ってくると言ったように、質問の DropDownList のコードが期待通りの結果を生むかは、Article の内容も Title も不明ですので、分かりません。

「質問の DropDownList のコードが期待通りの結果を生むか」が一番重要なことだと思っているのでいろいろ聞いているのですが・・・

【追記】

Model について混乱しているようですので、ASP.NET MVC で言う Model というのはどういうものか書いておきます。確かにここは混乱しやすいので。

一般的に MVC の Model の役割は以下の記事にあるような「アプリケーションデータ、ビジネスルール、ロジック、関数」で、その記事の図にあるように View と Controller の背後にあるといった構成で説明されていることが多いと思います。

Model View Controller
https://ja.wikipedia.org/wiki/Model_View_Controller

一方、ASP.NET MVC で言う Model は、下の図にあるように、上の Wikipedia の記事とはかなり異なります。

イメージ説明

上の図の「ドメインモデル」が Wikipedia の記事の Model「アプリケーションデータ、ビジネスルール、ロジック、関数」に近いものです。

ASP.NET MVC には「ドメインモデル」のほかに、Controller から View にデータを渡すために使われる「ビューモデル」、クライアントから送信されてくるデータを Controller のアクションメソッドに渡すための「入力モデル」というものがあります。

今回の質問では、View のコードの一行目に @model MvcView.Models.Article と書いてありますが、その Article は「ビューモデル」に該当します。View の中では Model プロパティで取得できます。また、xxxxxFor タイプの Html ヘルパーではその引数の model => model.Title の model で取得できます。

投稿2020/05/27 05:49

編集2020/05/28 02:29
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

toukyoutaro

2020/05/28 04:03

なるほどasp.net mvc でのモデルはまた別物なのですね。 もっと勉強します。 ありがとうございました。
退会済みユーザー

退会済みユーザー

2020/05/28 05:13

別物と言うわけではありません。守備範囲が広いと言うことです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問