UPDATED - I would suggest using the suggestion by Rune below rather than this option!
I assume that you want something like the following spat out:
<select name="blah">
<option value="1">Movie</option>
<option value="2">Game</option>
<option value="3">Book</option>
</select>
which you could do with an extension method something like the following:
public static string DropdownEnum(this System.Web.Mvc.HtmlHelper helper,
Enum values)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("<select name=\"blah\">");
string[] names = Enum.GetNames(values.GetType());
foreach(string name in names)
{
sb.Append("<option value=\"");
sb.Append(((int)Enum.Parse(values.GetType(), name)).ToString());
sb.Append("\">");
sb.Append(name);
sb.Append("</option>");
}
sb.Append("</select>");
return sb.ToString();
}
BUT things like this aren't localisable (i.e. it will be hard to translate into another language).
Note: you need to call the static method with an instance of the Enumeration, i.e. Html.DropdownEnum(ItemTypes.Movie);
There may be a more elegant way of doing this, but the above does work.