web-dev-qa-db-ja.com

MVC 4のドロップダウンリストでデフォルト値を選択します

選択した値でdropdownlistforを作成しようとしていますが、機能しません:/ Webで検索しましたが、解決策が見つかりません:/

今のところ、私はこれをやっています:

C#の場合:

ViewBag.ID_VEH = new SelectList(db.VEHI, "ID_VEH", "COD_VEH", 4); // 4 is an example

私のcshtmlでは:

@Html.DropDownListFor(model => model.ID_VEH, ViewBag.ID_VEH as SelectList)

ドロップダウンリストは完全ですが、デフォルト値は選択されていません:/アイデアはありますか?

10
user2609766

私がしたいことは、ドロップダウンリストに表示するアイテムのリストをモデルに追加することです。そのため、ビューバッグを介してそのリストを渡す必要はありません。また、コントローラに入力するSelectedValueを含むフィールドをモデルに追加するのも好きです。

その後、あなたは行うことができます

@Html.DropDownListFor(model => model.ID_VEH, new SelectList(Model.listVEH, "ID_VEH", "COD_VEH", Model.SelectedVEH_ID), "--Select VEH--")
12
Dylan Slabbinck

model.ID_VEHの初期値を4に設定するだけです。

コントローラで:

model.ID_VEH = 4;
9
Vic

誰かが答えを見つけるのに同様の問題を抱えている場合に備えて:

ドロップダウンボックスを使用してビューを表示し、コントローラーで(ハードコードされた)指定したアイテムに焦点を当てます。

コントローラ:

SGLDataRegistration.Models.DataRegistrationModel mdl = rwd.GetData(DateTime.Now.Year, currentWeek, DateTime.Now, 139, 1);

見る:

                    <div id="tempCustomerselect">
                        @Html.LabelFor(m => m.CustomerName)
                        @Html.DropDownListFor(m => m.PitchID, new SelectList((new SGLDataRegistration.Models.CustomerModel().GetRoles()).OrderBy(x => x.CustomerName), "PitchID", "CustomerName"), new {id = "ddlCustomer", @class="jsddlCustomer"})

                    </div>

このGetDataで、目的の値をハードコーディングしました。

public SGLDataRegistration.Models.DataRegistrationModel GetData(int year、int weekNumber、DateTime datum、int pitchID、int parameter){try {DataRegistrationParameters drp = GetParameter(parameter);

        //vul een instantie van het dataregistrationmodel
        SGLDataRegistration.Models.DataRegistrationModel drm = new Models.DataRegistrationModel();
         drm.WeekNumber = weekNumber;
         drm.BeginDay = datum;
         drm.Parameter = parameter;
         drm.Year = year;
         drm.PitchID = pitchID;
1
real_yggdrasil