I have viewdata in my controller which is populated by a list:
List<employee> tempEmpList = new List<employee>();
tempEmpList = context.employees.ToList();
ViewData["tempEmpList"] = tempEmpList;
and I am passing this into my view, the question is, how do I place the content of the viewdata list into a dropdown list?
The display data will be .name
from the list item.
I know I could do a foreach
on the Viewdata and create a select list, but this seems a bit long winded
You can use the DropDownList html helper:
@Html.DropDownList("SelectedEmployee",
new SelectList((IEnumerable) ViewData["tempEmpList"]), "Id", "Name")
In the SelectList
constructor, you can specify which properties of the Employee
class should be used as both the text and the value within the dropdown (e.g. "Id", "Name")
The name of the dropdown ("SelectedEmployee"
) will be used when you post back your data to the server.
Set up your ViewData
in the normal way, assigning a Key name that maps to a property in your model that will be bound on Post
...
ViewData["ModelPropertyName"] = new SelectList(...)
Then in your view simply add a Html.DropDownList
...
@Html.DropDownList("ModelPropertyName")
Please try with that. I have tried with MVC5
@Html.DropDownList("SelectedEmployee", new SelectList((System.Collections.IEnumerable) ViewData["tempEmpList"],"id","Name"))