[英]Select selected value in drop down list
我有一個看起來像的enum
public enum Department
{
Admin,
HR,
Marketing,
Sales
}
由此,我試圖在控制器中創建一個下拉列表,我這樣做
public SelectList GetDepartmentDropDownList(string departmentName = null)
{
var departments = Enum.GetValues(typeof(Department));
SelectList ddl = new SelectList(departments);
return ddl;
}
哪個工作正常。 但是正如您所看到的,我可以傳入opitional參數。 當下拉值保存到數據庫中並且用戶回來編輯該部分時,將傳遞此可選參數。 我要實現的目標是用戶最初選擇的內容,當他們回到編輯屏幕時,即選擇了特定項目,即,如果他們返回時選擇了HR
,則應該選擇HR
。
如果我做new SelectList(departments, departmentName, departmentName);
我收到以下錯誤:
數據綁定:Enums.Department'不包含名稱為'HR'的屬性
有人可以建議如何實現這一目標。
在視圖中,我正在使用Html.DropDownListFor()
作為
@Html.DropDownListFor(m => m.Department, Model.DepartmentDdl, "Please select a Department", new { @class = "form-control", @required = "required" })
我模型中的屬性是
public IEnumerable<SelectListItem> DepartmentDdl { get; set; }
然后在控制器中創建動作
model.DepartmentDdl = GetDepartmentDropDownList();
在控制器編輯操作中
model.DepartmentDdl = GetDepartmentDropDownList(departmentName); //department name here is read from the db
模型綁定通過綁定到屬性值來起作用。 例如,您需要在GET方法中設置屬性Department
的值,然后再將模型傳遞給視圖。
var model = new YourModel
{
Department = Department.HR,
DepartmentDdl = GetDepartmentDropDownList()
};
return View(model);
請注意,在GetDepartmentDropDownList()
方法中不需要您的參數。 在內部, DropDownListFor()
方法將構建新的IEnumerable<SelectListItem>
並根據綁定到的屬性設置每個SelectListItem
的Selected
值(即,將其忽略在SelectList
構造函數中進行設置)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.