0

Razor 構文で MCV アプリを開発しています。要素をドロップダウン リストに渡しました。任意のランダムなアイテムをビューに渡したいのですが、 item よりもドロップダウン リストのアイテムが選択されます。以下のコードは、ドロップダウン コードを表示します。

コントローラーコード

  [SessionFilterAction]
            public ViewResult Details(int id)
    {

 ViewBag.HODList = new SelectList(db.Employees.Where(e => e.DesignationType == "HOD"), "Id", "FullName");
            ViewBag.ItemToBeSelectedInList = 5;
            return View(paymentadvice);
    }

コードを表示

 if(ViewBag.DesignationTypeOfLoggedUser == "Staff")
    {
        @Html.DropDownList("HODList", String.Empty ,new { ???? })
    }

ここで、ドロップダウンの項目の 1 つを選択する viewbag 要素を使用したいと思います。これを行う方法 ?

4

2 に答える 2

1

constructor of the SelectList class選択する項目の ID を指定できる があります。

[SessionFilterAction]
public ViewResult Details(int id)
{
    int itemToBeSelectedInList = 5;
    ViewBag.HODList = new SelectList(
        db.Employees.Where(e => e.DesignationType == "HOD"), 
        "Id", 
        "FullName",
        itemToBeSelectedInList
    );
    return View(paymentadvice);
}

とはいえ、ViewBag を使用するのは悪い習慣であり、ビューでビュー モデルと厳密に型指定されたヘルパーを使用するように切り替えることをお勧めします。

于 2013-05-28T08:14:02.327 に答える
1

@Html.DropDownList selects item with flag Selected (SelectListItem.Selected = true). SelectList has constructor which automatically set this flag for specified item:

public SelectList(IEnumerable items, string dataValueField, string dataTextField, object selectedValue)

selectedValue should be the id of the employee that will be selected :

var employees = db.Employees.Where(e => e.DesignationType == "HOD").ToList();
var selectedEmployeeId = employess[5].Id;
ViewBag.HODList = new SelectList(employees, "Id", "FullName", selectedEmployeeId );
于 2013-05-28T08:27:29.633 に答える