我在創建HtmlHelper擴展方法。許多內置的框架方法支持HTMLAttributes(類型對象)這樣的參數,它們被渲染到最終的HTML上。我如何提供我自己的方法的重載,這些方法也支持htmlAttributes參數,而不必重寫字符串連接邏輯以將它們呈現爲標記上的屬性?如何在HtmlHelper擴展中支持htmlAttributes參數?
7
A
回答
17
HtmlHelper
對象具有將對象轉換爲名稱/值字典的方法,您可以在構建標記時將它合併到標記中。例如,下面的代碼會生成一個<script>
標籤與任何額外的屬性在傳遞:
var attributes = HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes) as IDictionary<string, object>;
TagBuilder tag = new TagBuilder("script");
tag.MergeAttributes(attributes);
tag.MergeAttribute("type", "text/javascript");
tag.MergeAttribute("src", scriptPath);
您可以提供過載或使用默認值,爲htmlAttributes
提供一個null
值,這將產生一個空Dictionary
。
(該方法也進行消毒的屬性名稱爲有效的HTML屬性,等等。所以它的安全使用上幾乎任何對象。)
+0
哇,正是我所需要的。謝謝! – blaster 2012-03-13 15:09:34
相關問題
- 1. 如何在此HtmlHelper中添加htmlAttributes?
- 2. 擴展HtmlHelper RouteLink
- 3. TextBoxFor擴展的HtmlHelper
- 4. 如何用Razor創建HtmlHelper擴展?
- 5. 支持文件擴展擴展
- 6. ActionAction中的htmlAttributes擴展方法MVC5
- 7. 如何使webpack支持擴展別名
- 8. 在.NET 4.0中擴展HtmlHelper MVC3 ASPX
- 9. asp.net MVC 4 - Htmlhelper擴展
- 10. HtmlHelper擴展 - 用戶控制
- 11. HtmlHelper擴展的動態
- 12. 的HtmlHelper擴展與腳本
- 13. 如何在Java中擴展參數?
- 14. cockroachdb是否支持擴展?
- 15. 不Qt的擴展支持
- 16. Android soundPool支持擴展?
- 17. MinOrDefault擴展不支持
- 18. NodeJS擴展ASCII支持
- 19. ARM OpenCL支持cl_khr_fp64擴展
- 20. 擴展NHibernate以支持聚合函數
- 21. 擴展MultiMap支持的類型數
- 22. 如何在ASP.NET MVC中擴展帶有Ajax效果的HtmlHelper 5
- 23. 如何擴展參數
- 24. 正確使用htmlAttributes製作ActionLink擴展
- 25. 如何在jRuby中啓用C擴展支持?
- 26. 如何在我自己的php擴展中使用PDO支持?
- 27. 如何在psprovider中支持powershell標籤擴展?
- 28. IE8在具有擴展的CSS支持
- 29. 如何擴展MyBatis以支持新的數據庫?
- 30. 如何啓用PHP擴展和數據庫支持?
你有什麼這麼遠嗎? – 2012-03-12 14:51:26