4

MVCでプロジェクトを開始しました。MVC asp.net は初めてです。asp.net で追加したのと同じように、ドロップダウン リスト ボックスを追加したいと考えています。

ドロップダウン リスト ボックスの asp.net のコードを垣間見る

<asp:Dropdownlist ID="ddlCity" runat="server">
<asp:ItemList Text="Kolkatta" Value="1"/>
<asp:ItemList Text="New Delhi" Value="2"/>
<asp:ItemList Text="Mumbai" Value="3"/>
<asp:ItemList Text="chennai" Value="4"/>
<asp:ItemList Text="Hydrabad" Value="5"/>
</asp:Dropdownlist>

その方法でドロップダウンリストボックスが欲しい....つまり、そのためのモデルとコントローラーを作成する必要があります。「Employee Entry Form」という名前のビューが既にあり、そのページにのみドロップダウン リストを 1 つ追加する必要があるとします。このドロップダウン リストのモデルを作成したくありません。このページでのみ必要です。

4

4 に答える 4

37

ドロップダウン リストの値は、既存のビュー モデルにある必要があります。

public class WhateverViewModel
{
    // All of your current viewmodel fields here
    public string SelectedCity { get; set; }
    public Dictionary<string, string> CityOptions { get; set; }
}

これらをコントローラーに任意の値 (ここで、SelectedCity は数値 ID) で設定し、ビューで次の操作を行います。

@Html.DropDownListFor(m => m.SelectedCity,
    new SelectList(Model.CityOptions, "Key", "Value", Model.SelectedCity))

値が変更されない場合は、それらをstaticビュー モデルのメンバーとしてハードコーディングしてから、次の操作を行うことができます。

@Html.DropDownListFor(m => m.SelectedCity,
    new SelectList(WhateverViewModel.CityOptions, "Key", "Value", Model.SelectedCity))

いずれにせよ、これはこのビューのデータであるため、ビュー モデルに属します。ビュー モデルを使用しておらず、このビューがドメイン エンティティに直接関連付けられている場合。あなたはそれらを使用する必要があり、今が開始するのと同じくらい良い時期です.

于 2013-06-10T10:24:38.800 に答える
3

モデルの使用を避けたい場合は、単に ViewBag を使用できます。あなたの行動で:

ViewBag.DirectorId = new SelectList(ListOfItemsToAdd, "dataValueField", "dataTextField", movie.DirectorId);

そしてビューで:

<%= Html.DropDownList("VariableNameToPost", ViewBag.DirectorId) //for asp.net view engine %> 
@Html.DropDownList("VariableNameToPost", ViewBag.DirectorId) // for razor view engine

変数を受け入れるアクションは、次のようになります。

public ActionResult theAction(string VariableNameToPost){...}

参考文献:

于 2013-06-10T08:21:49.603 に答える
3

コントローラーとモデルに関係なく、ビューに直接ドロップダウンを作成する場合は、次のコードを使用して作成できます

@Html.DropDownList("Departments", 
  new SelectList(new [] { new KeyValuePair<string, int>( "IT", 0 ), new KeyValuePair<string, int>( "HR", 1 )},"Value", "Key")) 
于 2013-06-10T10:38:40.980 に答える