我正在创建一个asp.net mvc 2应用程序,根据用户输入动态生成我的视图模型.简而言之,用户可以在他的视图中选择他想要查看的字段.
由于模板化助手严重依赖于模型属性和属性(数据注释),因此我需要以某种方式在运行时将属性添加到视图模型中.无需说这不是一项简单的任务.
那么,你们在这种情况下建议我做些什么呢?我无法静态添加属性,所以我应该继续尝试动态添加它们,即使它是很多工作还是我应该尝试使用不同的方法?
提前致谢!
费利佩
解决方法
自定义模型绑定器只会帮助您绑定绑定部分.它无助于模板化助手或ASP.NET MVC的其他功能.
我建议通过继承ModelMetadataProvider并使用ModelMetadataProviders在global.asax中注册您的提供程序来编写自定义元数据提供程序.自定义元数据提供程序可以从任何地方获取其元数据:CLR属性,XML文件,数据库或随机数生成器.内置的Data Annotations提供程序当然使用CLR属性.
您可能希望查看内置Data Annotations元数据提供程序的源代码,以查看如何实现提供程序的示例.您可以从the CodePlex site下载ASP.NET MVC 2 RC 2源代码.MVC Futures项目中可能还有一个实现,但我不确定.