asp.net-mvc – 如何在ASP.NET MVC中提供自己的ICustomTypeDescr
我正在为ASP.NET MVC 3开发一个小型库,该库可以提供更好的模型元数据可重用性,并且可以轻松地从数据实体映射到自定义视图模型.为此,我需要能够为ASP.NET MVC中三个不同的感兴趣区域提供我自己的ICustomTypeDescriptor实现:
>脚手架 看起来这可以通过将System.Web.Mvc.ModelMetadataProviders.Current设置为我自己的CustomMetaDataProvider来完成,但这还不足以覆盖上面的所有三点. 问题是System.Web.Mvc中有几个类直接调用这个不可扩展的System.Web.TypeDescriptorHelper,因为它看起来像这样: internal static class TypeDescriptorHelper { public static ICustomTypeDescriptor Get(Type type) { return new AssociatedMetadataTypeTypeDescriptionProvider(type).GetTypeDescriptor(type); } } 我找到的唯一解决方案非常笨拙,并且需要从System.Web.Mvc中继承许多类型以使其工作.我甚至不得不完全重新实现CustomModelBinderDictionary,只是为了覆盖一行或两行代码.所以它有效,但它是一个非常混乱的黑客,并可能在下次更新到新的ASP.NET MVC版本时中断. 所以这就是我想知道的:我是否想念任何简单的方法? 奖金问题:如果没有,你来自MVC团队,你能考虑在MVC 4中创建一个合适的扩展点;-)? 编辑:回答问题为什么我需要编写自己的TypeDescriptor代码:有几个原因: 解决方法
根据
Brad Wilson(ASP.NET MVC团队成员)的说法,这个问题已经被放在了MVC 4的bug列表中.所以目前似乎没有好的解决方案,但希望这可以在MVC 4发布时解决.
对于任何对我的库感兴趣的可重用验证和脚手架元数据以及模型/视图模型映射的人,请随时在https://devermind.wordpress.com/订阅我的博客.我将在那里发布库. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-3 – html.dropdownlist MVC3混乱
- asp.net – .NET – 如何调试DLL?
- asp.net-mvc – FormsAuthentication.SetAuthCookie vs For
- 从经典的ASP到.net c#或vb?
- asp.net-mvc – ASP MVC中的视图中的权限
- 验证 – 使用ASP.NET MVC和数据注释验证模型的PART
- asp.net – 在序列化“System.Reflection”类型的对象时检测
- asp.net-mvc – 在MVC Razor中保留数据,而不在请求之间使用
- treeview 和数据源绑定
- asp.net-mvc – MVC @ Url.Content vs @ Url.Action