Я не вижу свойство Disabled в классе 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();

в определениях свойств класса я не вижу свойства «Отключено». Кроме того, когда я перебираю коллекцию статусов, я все еще не вижу свойства.

Почему я не вижу некоторые свойства, которые определены как общедоступные?


person user3021830    schedule 04.09.2014    source источник


Ответы (1)


Когда вы смотрите на код в codeplex, вы видите ТЕКУЩИЙ код, то есть 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

person Erik Funkenbusch    schedule 04.09.2014
comment
Я вижу проблему. Теперь все это имеет смысл. Большое спасибо за информацию. Хотя я проверил AssemblyInfo.cs в проекте, кажется, что я должен был также проверить CommonAssemblyInfo.cs. - person user3021830; 05.09.2014