當您將匿名類型傳遞給像TextBox這樣的HtmlHelper方法時,您會收到綁定錯誤(因爲匿名類型成員只有內部訪問權限),除非您使用use a RouteDataDictionary to extract the members。ILSpy(又名.NET Reflector)顯示了一種只是調用自己的方法,爲什麼?
當我看到(HtmlHelper擴展)InputExtensions.TextBox方法接受匿名類型時,我知道它必須在內部進行一些轉換,否則它會失敗並顯示相同的錯誤。
果然,它調用HtmlHelper.AnonymousObjectToHtmlAttributes方法,其文檔試圖通過不提及它來淡化該問題,而是建議只使用破折號替換下劃線以確保使用有效的屬性名稱。當然。無論如何...
我想看看到底是什麼轉換的樣子,但是當我在ILSpy中檢查HtmlHelper的靜態方法時,該方法似乎只是調用它自己。這裏發生了什麼?
從System.Web.MVC.HtmlHelperpublic static RouteValueDictionary AnonymousObjectToHtmlAttributes(object htmlAttributes)
{
return HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes);
}
@Triynko它回答你的問題嗎? –