代码之家  ›  专栏  ›  技术社区  ›  user3021830

在System.Web.Mvc.SelectListItem类中找不到“Disabled”属性

  •  0
  • user3021830  · 技术社区  · 10 年前

    我从CodePlex下载并检查了微软的MVC源代码。根据源代码,类定义如下:

    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();
    

    在类属性定义中,我看不到“Disabled”属性。此外,当我遍历状态集合时,仍然无法看到该属性。

    为什么我看不到一些定义为公共的财产?

    1 回复  |  直到 10 年前
        1
  •  1
  •   Erik Funkenbusch    10 年前

    当您查看codeplex中的代码时,您看到的是CURRENT代码,即MVC 5.x。您使用的是MVC4,它不是当前代码,因此您看到的代码不是您正在使用的代码。

    事实上,Disabled属性已添加到MVC5,而不是MVC4的一部分。这就是为什么您不能在MVC4代码中访问它。您可以通过转到codeplex站点,在web浏览器中浏览代码,然后查看以前的版本来看到这一点,您将看到它在以前的版本中不存在。

    您还可以查看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