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

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

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

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

Visual Studio

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

ASP.NET

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

Q&A

1回答

2441閲覧

ListBoxForで動的な値を登録したい

koki_

総合スコア10

C#

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

Visual Studio

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

ASP.NET

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

0グッド

1クリップ

投稿2018/12/13 10:29

実現したいこと

ListBoxForで動的に取得したMemberIDとNameをControllerに渡したいです。

該当のソースコード

C#

1//Entity .cs 2public class Member 3{ 4 public int MemberID { get; set; } 5 public string Name { get; set; } 6} 7 8//ViewModel .cs 9public class Model 10{ 11 public List<Member> MemberList { get; set; } 12} 13 14//View .cshtml 15//Listに全メンバーを出力して、登録したいメンバーをMemberListに移動させる 16<select name="List" size="5" multiple="multiple"> 17 @foreach (var item in Model.MemberList) 18 { 19 <option>@item.Name</option> 20 //↑画面上はNameを出したいけど Controllerで MemberIDも使いたい 21 } 22</select> 23<input type="button" name="right" value="≫" /><br /><br /> 24<input type="button" name="left" value="≪" /> 25@Html.ListBoxFor(m => m.MemberList) //ここの書き方がわからない 26 27//List → MemberList間の値の移動 28@section scripts{ 29 <script type="text/javascript"> 30 $(document).ready(function () { 31 $('input[name=right]').on('click', function () { 32 move('List', 'MemberList'); 33 }); 34 35 $('input[name=left]').on('click', function () { 36 move('MemberList', 'List'); 37 }); 38 39 var move = function (_this, target) { 40 $('select[name=' + _this + '] option:selected').each(function () { 41 $('select[name=' + target + ']').append($(this).clone()); 42 $(this).remove(); 43 }); 44 }; 45 }); 46 </script> 47} 48 49//Controller .cs 50public class Controller(Model postModel) { 51 //ここでは MemberID を使いたいけど、 52 //ViewからどうやってMemberIDを渡したらいいかわからない 53} 54

わからないこと

・見た目上はNameを出力したいけど、MemberIDもControllerで使いたい!でもどう渡したらいいかわからないです
・@Html.ListBoxの部分でどう書いていいかわからないです

よろしくお願いいたします。。

補足情報

・ASP.NET MVC5

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

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

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

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

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

guest

回答1

0

ListBoxForで動的に取得したMemberIDとNameをControllerに渡したいです。

上記の意味が分かりません。

select 要素の option、例えば、

<option value="MemberID">Name</option>

が選択されているとして、ボタンクリックなどで POST された際、「MemberID」と「Name」の両方を Controller のアクションメソッドで受け取りたいということですか?

であれば、不可能です。

ListBox / ListBoxFor は ASP.NET がそれを html にレンダリングすると、以下の記事の「星座」のようになるはずです。

<SELECT> …… セレクトボックスを作成する
http://www.htmq.com/html/select.shtml

例えばユーザーが <option value="Aries">おひつじ座</option> を選んで POST したときにサーバーに送られるのは horoscope=Aries だけです。

意味を取り違えていたら指摘ください。

投稿2018/12/13 11:43

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問