Я не вижу свойства "Отключено" в классе System.Web.Mvc.SelectListItem
Я загрузил и изучил исходные коды Microsoft MVC от CodePlex. Согласно исходному коду определения классов следующие:
namespace System.Web.Mvc
{
public class SelectListItem
{
/// <summary>
/// Gets or sets a value that indicates whether this <see cref="SelectListItem"/> is disabled.
/// </summary>
public bool Disabled { get; set; }
/// <summary>
/// Represents the optgroup HTML element this item is wrapped into.
/// In a select list, multiple groups with the same name are supported.
/// They are compared with reference equality.
/// </summary>
public SelectListGroup Group { get; set; }
public bool Selected { get; set; }
public string Text { get; set; }
public string Value { get; set; }
}
}
Но когда я пишу следующий код
List<System.Web.Mvc.SelectListItem> statuses = (from s in DataContext.OfferStatuses
select new System.Web.Mvc.SelectListItem
{
Value = s.Id.ToString(),
Text = s.Code,
}).ToList();
в определениях свойств класса я не вижу свойства "Отключено". Также, когда я перебираю коллекцию статусов, я все еще не вижу свойства.
Почему я не вижу некоторые свойства, которые определены как общедоступные?
1 ответ
Когда вы смотрите на код в codeplex, вы смотрите на код CURRENT, то есть MVC 5.x. Вы используете MVC4, который не является текущим кодом, поэтому код, который вы видите, не тот код, который вы используете.
Фактически, свойство Disabled было добавлено в MVC5, а не в MVC4. Вот почему вы не можете получить к нему доступ в своем коде MVC4. Вы можете убедиться в этом, зайдя на сайт codeplex и просмотрев код в веб-браузере, а затем просмотрев предыдущие версии, вы увидите, что его не было в предыдущих версиях.
Вы также можете увидеть, посмотрев предыдущую версию в документации MSDN:
Документация MVC5: http://msdn.microsoft.com/en-us/library/system.web.mvc.selectlistitem(v=vs.118).aspx
Документация MVC4 http://msdn.microsoft.com/en-us/library/system.web.mvc.selectlistitem(v=vs.108).aspx