6

我正在瀏覽asp.net mvc 3的源代碼,我剛剛從codeplex下載。我特別感興趣的是看到強類型的Helper方法(如TextBoxFor和DropDownListFor)的源代碼,但未能在InputExtensions.cs和其他位置找到它們。Html.TextBox的源代碼在哪裏

有人會指出我能找到需要的代碼嗎?我的目的是查看這些輔助方法如何將Html 5的data- *屬性添加到表單上的不同輸入元素。

回答

6

獲取reflector(第6版應該是地方免費提供),開放System.Web.Mvc.dll和搜索InputExtensions

獲取mvc source code,在Visual Studio中打開,並搜索InputExtensions

編輯:誤讀了這個問題..

我猜你在找InputExtensions.cs line: 371

tagBuilder.MergeAttributes(htmlHelper.GetUnobtrusiveValidationAttributes(name, metadata)); 
+2

同意,除了使用反射鏡,因爲展鵬接手:對我建議的民間嘗試像選擇:HTTP: //community.sharpdevelop.net/blogs/christophwille/archive/2011/02/16/new-from-sharpdevelop-ilspy.aspx – 2011-05-11 13:04:48

11

您無需下載源代碼或使用反射器擴展。

如果您「定義」(F12),您應該看到文件元數據,它是彙總的方法聲明。從那裏,將鼠標懸停在選項卡上,您應該看到方法來自哪裏的(本地)文件路徑,該路徑也對應於命名空間。有了這一點,你就可以從MVC源代碼看看它在Codeplex:

http://aspnetwebstack.codeplex.com/SourceControl/changeset/view/5cb74eb3b2f3#src/System.Web.Mvc/Html/InputExtensions.cs