我正在使用一个asp.net MVC 3应用程序,该应用程序正在使用编译库中的数据模型。但是,我希望能够将以下声明添加到已编译的dll中的某些数据模型属性中:
[HiddenInput(DisplayValue = false)]
问题是我没有DLL的源代码,并且作者不想在System.Web.Mvc上引入依赖。有没有办法,使用部分类或类似的东西,这将允许我添加这个属性?
标记
答案 0 :(得分:5)
不,没有办法。在编译时,属性在程序集的元数据中被烘焙,并且在运行时不能修改现有的类。就部分类而言,它们仅在同一个程序集中工作。
此外,如果这个程序集的作者不希望在System.Web.Mvc
的库中引入依赖关系,他们可能有理由这样做。显然,作为MVC开发人员,您应该使用视图模型,这些视图模型是专门针对视图需求定制的类,然后在域模型(来自不同库的内容,......)和视图模型之间进行映射。然后,您将这些视图模型传递给视图,而不是域模型。当然,您的视图模型将具有所有必需的元数据和格式,例如DisplayName,Hidden,...为了简化这两个类之间的映射,您可以使用AutoMapper。
答案 1 :(得分:0)
您可以将已编译的库数据模型映射到一组本地模型。
如果您要将已编译的库数据模型映射到您自己的本地模型集,您可以执行您喜欢的操作。
您可以手动执行此操作,也可以查看AutoMapper等工具。
答案 2 :(得分:0)
将对system.web.mvc的引用添加到您的类项目中。