>  > (まとめ)硼珪酸ガラス製ビーカー(ISOLAB)1000ml【×5セット】【送料込/送料無料】

(まとめ)硼珪酸ガラス製ビーカー(ISOLAB)1000ml【×5セット】【送料込/送料無料】

APMLフィルター

DropDownList への SelectList の渡し方

by WebSurfer 2019年2月25日 14:37

ASP.NET MVC5 の Html ヘルパーの DropDownList および DropDownListFor に表示するデータを 送料無料 毛布 ガーゼケット シングル ガーゼ 極選魔法の糸×オーガニックプレミアム三重織 ガーゼ毛布 2P GMOW-16200 内祝い ギフト お返し 結婚内祝い 引き出物 出産内祝い 引越し 挨拶 快気祝い 香典返し、アクションメソッドからビューにどのように渡すかということについて書きます。

上の画像は、先の記事「スキャフォールディング機能」で書いた通りにスキャフォールディング機能を使って自動生成させたコードで、その中の Edit 画面を表示したものです。

SupplierID と CategoryID が Html ヘルパーの DropDownList を使ってドロップダウン形式で表示されるようになっています。上の画像は CategoryID を展開したところで、CategoryName の一覧が表示されています。

スキャフォールディング機能で自動生成されたコードが基本になるでしょうから、それがどうなっているかを書きます。

まずアクションメソッド Edit で SelectList オブジェクトを生成し ViewBag に設定しています。以下のコードの通りです。

public ActionResult Edit(int? id)
{
 NORTHWINDEntities db = new NORTHWINDEntities();
 Products products = db.Products.Find(id);
 ViewBag.CategoryID = 
 new SelectList(db.Categories, "CategoryID", 
 "CategoryName", products.CategoryID);
 ViewBag.SupplierID = 
 new SelectList(db.Suppliers, "SupplierID", 
 "CompanyName", products.SupplierID);
 return View(products);
}

コンストラクタに SelectList(IEnumerable, String, String, Object) を使って、第 4 引数に selectedValue を設定しているところに注目してください。これによりビューの DropDownList が html に変換された際、select 要素内の当該 option 要素に selected 属性が付与されます。

ビューの DropDownList のコードは以下のようになります。第 1 引数がアクションメソッドで設定した ViewBag のキー名 SmartWool Phd Outdoor Light Pattern Crew Sock - Women's Oatmeal アウトドア レディース 女性用 靴下 ソックス、第 2 引数が null になっているところに注目してください。

@Html.DropDownList("SupplierID", null, 
 htmlAttributes: new { @class = "form-control" })
@Html.DropDownList("CategoryID", null, 
 htmlAttributes: new { @class = "form-control" })

DropDownList の第 2 引数が null となっていますが、第 2 引数の設定に関わらず ViewData / ViewBag から型が IEnumerable<SelectListItem> でキー名が第 1 引数と同じものを探してきます。

(例えば、上記のアクションメソッドで ViewBag.SupplierID の設定を削除すると、ビューの DropDownList のコードで「キー 'SupplierID' を持つ ViewData 項目の型は 'System.Int32' ですが、'IEnumerable<SelectListItem>' でなければなりません」というエラーになります)

DropDownList の第 1 引数を元に ViewBag で渡されたデータ(アクションメソッドで設定された SelectList オブジェクト)を取得するので、上の画像の通りドロップダウン形式で表示できるようになります。さらに、SelectList コンストラクタの第 4 引数に設定した selectedValue によって当該 option 要素に selected 属性が設定された結果が表示されます。

なお、DropDownList の第 2 引数を (SelectList)ViewBag.Supplier としたりすると、SelectList のコンストラクタで第 4 引数に設定した selectedValue が無視されるので注意してください。理由は不明です。

ViewData / ViewBag に DropDownList の第 1 引数と同じキー名がない場合は、

(まとめ)硼珪酸ガラス製ビーカー(ISOLAB)1000ml【×5セット】【送料込/送料無料】の本物を購入する


ひだまり ラビセーヌ 長袖U首 Lサイズ【紳士用】


(まとめ)硼珪酸ガラス製ビーカー(ISOLAB)1000ml【×5セット】【送料込/送料無料】 [送料無料]★メンズ シングル コート (4col)★メンズ アウター コート ジャケット ジャンパー ビジネス カジュアル 細身 冬服 春服 冬 冬春【コート】

↓↓↓Lサイズ[春夏] 婦人長袖・長パンツパジャマ(DAKS ダックス レディース 日本製) ラウンドカラー/前あき全開;テンス【tense】トノーIモデル No.66 メープルウッド&サンダルウッド使用1971年創業のカナダ木工専門技を結集し、匠が創り上げたTENSE木製腕時計(ウッドウォッチ)。テンス社日本総輸入元公式販売サイト。【日本総輸入元のメンテナンス保証付】;ストリーム用 ハーネスドライバードアーワイヤーストリーム 32751-SMA-940, 【店頭取付→送料無料】 4本セット! ハンコック HANKOOK Radial RA08 165R14 8PR 取寄商品/代引不可, プロジェクトミュー RACING-N+ ブレーキパッド フロント レクサス IS350, パジェロ シートレール V1#/V2#/V4#/V55 91/01~99/08 FBタイプ BRIDE/ブリッド (M047/048, 【USA在庫あり】 ストンプグリップ STOMPGRIP TANK KIT CLEAR VFR1200X 674563 HD;オリエント 逆輸入 海外モデル 日本製 レディース 腕時計 SQCBE005B0 ORIENT 時計 2年保証 Guess ゲス Greta グレタ 腕時計 レディース W0891L3 ステンレス ステンレスベルト ベゼルクリスタル ローズゴールド 金【smtb-m】↓↓↓Acerbis レプリカ Plastic キット ホワイト - フィット: KTM 250 XC-F 2013-2015 (海外取寄せ品), KYB カヤバ フィットハイブリッド GP5 スプリング ダウンサス セット 1台分 ローファースポーツ LHSセット Lowfer Sports LHS-GP5, サファリ(7人乗) フロアマット [シンプル] カーマット サファリ オリジナルマット 【国産 水洗い可 ライン 黒 赤 ベージュ グレー ワイン】【RCP】, RS-R RS★R SUPER DOWN サスペンション T641SR リア トヨタ カルディナ ST246W 4WD TB GT FOUR 2000cc 2002年09月~2007年05月, 【送料無料】 205/60R16 16インチ WEDS ウェッズ トレファー MH 6.5J 6.50-16 PIRELLI ピレリ チンチュラートP6 サマータイヤ ホイール4本セット

あこや真珠 パール ネックレス 8.5mm アコヤ 真珠 ペンダント K18WG ホワイトゴールド レディース HA00085R12NW0B01WS

↓↓↓↓↓↓


↓↓↓↓↓↓
↓↓↓↓↓↓

17系マジェスタ マットブラックエンブレム(艶消し) リア単品  純正/メッキ/艶消し/黒/セット/単品/車/車パーツ/カーパーツ/高品質/送料無料, [品番:3112] グラン(GLANZ) SPEC-CX ブレーキパッド リヤ ホンダ(HONDA) アコード CL8 02/10~08/12, [Projectμ] プロジェクトμ ブレーキパッド Bスペック フロント用 レガシィB4 BE5 98/11~ RSK Sエディション F4pot 2.0L 本州は送料無料 北海道は送料500円(税別) 沖縄・離島は送料1000円(税別), 225/55R18 98V MAXTREK マックストレック SIERRA S6 シエラ エスロク VENERDi MADELENA ADELE ヴェネルディ マデリーナ アデーレ サマータイヤホイール4本セット, LT275/55R20 BFGoodrich All-Terrain T/A KO2 BK 275/55-20 オフロードタイヤ of

【】THE KISS 公式サイト K10 イエローゴールド ピアス キュービックジルコニア ピアス レディースジュエリー・アクセサリー ジュエリーブランド THEKISS レディースピアス 記念日 プレゼント SA-107CB ザキス 【送料無料】;REGALIA レガリア シルバー ピアス ブラック 20代 30代 彼氏 メンズ 人気 ブランド Vantage Apparel バンテージ アパレル シャツ ポロシャツ Stephen F Austin Lumberjacks Women's Black Vansport Omega Plus Size Tech Polo SALE 送料無料 【銀座マギー】フラミンゴ 刺繍 カットソー[全3色] ミセス ファッション 30代 40代 50代 ファッション カットソー;ハイジ クライン Heidi Klein ワンピース Printed swimsuit PRINT

ダナキャランニューヨーク レディース トップス シャツ Striped Short Sleeve Top;メラ ロンドン レディース ワンピース・ドレス ワンピース【Flower Print Ruffle Dress】black

(まとめ)硼珪酸ガラス製ビーカー(ISOLAB)1000ml【×5セット】【送料込/送料無料】 (まとめ)硼珪酸ガラス製ビーカー(ISOLAB)1000ml【×5セット】【送料込/送料無料】

、DropDownList の第 2 引数の設定が有効になるようです。例えば、アクションメソッドで ViewBag.SupplierID を ViewBag.Supplier に変更した場合、DropDownList("SupplierID", (SelectList)ViewBag.Supplier, ...) として selected の設定を含めて期待した結果が得られます。

ViewData / ViewBag を探す順序ですが ●【ハンカチタオル】レディースプレミアム●花柄タオルハンカチ・1枚入● 【200点】argo、検証してみると、まず最初に ViewData を ヘドグレン レディース バックパック・リュックサック バッグ Sheen RFID Backpack Sun Dried Tomato、それになければ ViewBag を探すという結果になりました。ViewData / ViewBag に同じキー名があると、ViewData のデータが使われます。その際 OAKLEY オークリー SLIVER EDGE (A) OO9414-0563 【日本正規品/アジアンフィット/海/アウトドア/キャンプ/フェス】、もし ViewData のデータが不正ですと(IEnumerable<SelectListItem> 型でないと)エラーになります。

以上は DropDownListFor を使っても同様です。第 1 引数は model => model.SupplierID のようになりますが 、プロパティ名 SupplierID から ViewData / ViewBag を探して設定してくれます。

Tags: , ,

MVC

About this blog

2010年5月にこのブログを立ち上げました。その後 ブログ2 を追加し、ここは ASP.NET 関係のトピックス、ブログ2はそれ以外のトピックスに分けました。

{yahoojp}jpprem01-zenjp40-wl-zd-93006