我的web應用程序的第一部分是創建一個接口,用戶可以在其中創建字段名稱以及與字段名稱關聯的數據類型。 現在我需要創建第二部分,從數據庫中提取這些字段名稱以及與它們關聯的數據類型,並使用這些字段名稱/數據類型即時創建html控件。例如,如果其中一個字段名稱是「birthdate」,數據類型是「datetime」,那麼我的視圖應該會自動創建一個名稱屬性爲「birthdate」的html文本框。如果字段名稱爲「活動」,並且數據類型爲布爾值,則該視圖應自動創建名稱屬性爲「活動」的複選框。任何人有任何建議如何在MVC做到這一點?我假設我需要使用反射,並且當我必須發回數據時,我將不得不發回一個json對象。動態創建html控件(反射?)
回答
我沒有創建自己的htmlhelpers,但是我做了類似的事情。我使用字符串生成器來動態創建我的控制器的get方法中的html,然後將其發佈到視圖中。
雖然這可能有效,但它違背了mvc和OOP的良好做法。助手本來是一個更好的方法,可以等同於字符串聚合的相同方法來生成該字段。 – doogle
我無法使用html助手的原因是因爲我正在使用抽象模式。我需要動態創建的動態html控件基於模板。當用戶在下拉列表中選擇一個值時,該值將通過ajax回傳到我的控制器,然後傳遞到我的存儲庫。然後該值用於從存儲庫中獲取正確的模板。然後,該模板用於在我的操作結果中的字符串生成器中創建我的html控件。該字符串然後作爲用於創建控件的MVC字符串返回到視圖。 – RiceRiceBaby
你可以使用mvc htmlhelpers。例如靈活的htmlhelper,用於接受收集和其他參數的dropdownlist。另一個htmlhelper來獲取收集並提供listbox和..... 並且在您的視圖中,您可以使用這些htmlhelpers的類型。
- 1. 動態創建DTPicker控件
- 2. 動態控件創建
- 3. 動態創建控件
- 4. 動態創建ListView控件
- 5. 動態創建的控件
- 6. ASP.NET:動態創建控件
- 7. Qt - 動態創建控件
- 8. 創建動態控件
- 9. 創建動態控件
- 10. 創建反射
- 11. 動態反射
- 12. 動態創建並添加控件以動態創建表控件
- 13. 如何在動態創建的ASP.net控件中動態創建ASP.net控件
- 14. 創建動態組件反應(本機)
- 15. 創建由反射
- 16. 創建反射Opengl
- 17. 動態和反射
- 18. 最好的方法來創建動態HTML控件在MVC
- 19. 在HTML創建動態控件名稱不同
- 20. 根據靜態控件的選定值創建動態控件
- 21. 動態創建HTML文件(客戶端)
- 22. 將反射權限授予動態創建的程序集
- 23. 使用Java動態創建類反射,java.lang.ClassNotFoundException
- 24. 如何創建動態的IF語句?反射?
- 25. 通過反射動態創建通用列表時出錯
- 26. 如何通過Java反射動態創建Java類?
- 27. 如何動態創建使用反射的通用C#對象?
- 28. 用java反射動態創建JSF表單
- 29. 創建動態HTML C#
- 30. php創建動態html表
您必須創建您自己的ModelMetadataProvider和ModelValidatiorProvider。這可能是有用的:http://mgolchin.net/posts/21/dive-deep-into-mvc-modelmetadata-and-modelmetadataprovider – ataravati