Это должно работать.Я не могу воспроизвести проблему.
Модель:
public enum Course
{
[Display(Name = "Basic Level", ShortName = "Basic")]
Basic = 1,
[Display(Name = "Intermidiate Level")]
Intermidiate = 2,
[Display(Name = "Advance Level")]
Advance = 3
}
Контроллер:
public class HomeController : Controller
{
public ActionResult Index()
{
var course = from Course c in Enum.GetValues(typeof(Course))
select new { ID = c, Name = c.ToString() };
ViewData["course"] = new SelectList(course, "ID", "Name");
return View();
}
}
Index.cshtml
просмотр:
@{Html.RenderPartial("CreatePartial");}
CreatePartial.cshtml
частичный:
@Html.DropDownList("course")
Я подозреваю, что это не работает после отправки формы, а не при ее первоначальной загрузке.И это может произойти, потому что вы, вероятно, забыли заполнить ViewData["course"]
в вашем действии [HttpPost]
и все же попытались снова отобразить то же представление.Если вы хотите снова отобразить то же представление, убедитесь, что вы заполняете ViewData["course"]
так же, как вы делали в своем действии GET, которое использовалось для первоначальной визуализации страницы.
Еще одна вещь, на которую следует обратить внимание, это то, что вы ненет другого ViewData["course"]
значения, которое конфликтует.