ASP.NET MVC将HiddenInput属性添加到DLL中的Model

时间:2011-03-17 13:25:11

标签: asp.net-mvc asp.net-mvc-3

我正在使用一个asp.net MVC 3应用程序,该应用程序正在使用编译库中的数据模型。但是,我希望能够将以下声明添加到已编译的dll中的某些数据模型属性中:

[HiddenInput(DisplayValue = false)]

问题是我没有DLL的源代码,并且作者不想在System.Web.Mvc上引入依赖。有没有办法,使用部分类或类似的东西,这将允许我添加这个属性?

标记

3 个答案:

答案 0 :(得分:5)

不,没有办法。在编译时,属性在程序集的元数据中被烘焙,并且在运行时不能修改现有的类。就部分类而言,它们仅在同一个程序集中工作。

此外,如果这个程序集的作者不希望在System.Web.Mvc的库中引入依赖关系,他们可能有理由这样做。显然,作为MVC开发人员,您应该使用视图模型,这些视图模型是专门针对视图需求定制的类,然后在域模型(来自不同库的内容,......)和视图模型之间进行映射。然后,您将这些视图模型传递给视图,而不是域模型。当然,您的视图模型将具有所有必需的元数据和格式,例如DisplayName,Hidden,...为了简化这两个类之间的映射,您可以使用AutoMapper

答案 1 :(得分:0)

您可以将已编译的库数据模型映射到一组本地模型。

如果您要将已编译的库数据模型映射到您自己的本地模型集,您可以执行您喜欢的操作。

您可以手动执行此操作,也可以查看AutoMapper等工具。

答案 2 :(得分:0)

将对system.web.mvc的引用添加到您的类项目中。