2014-09-04 23 views
0

我已經從CodePlex下載並檢查了Microsoft的MVC源代碼。根據源代碼中的類定義如下:我看不到System.Web.Mvc.SelectListItem類中的「Disabled」屬性

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站點並瀏覽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

+0

我看到的問題。現在這一切都有道理。非常感謝你提供的信息。儘管我已經在項目中檢查了AssemblyInfo.cs,但似乎也應該檢查CommonAssemblyInfo.cs。 – user3021830 2014-09-04 21:49:32

相關問題