asp.net-mvc-2 – MVC的DataAnnotationsModelMetadataProvider中的“F
|
它是提供给CreateMetadata方法的参数之一(如果扩展元数据支持,您将覆盖它). ModelMetadata CreateMetadata(IEnumerable<Attribute> attributes,Type containerType,Func<object> modelAccessor,<<--THIS ONE
Type modelType,string propertyName)
我假设它允许您访问模型对象本身(例如,用于基于模型值设置元数据),但是当我尝试使用它来转换到我的模型对象时,我只是为空. Entity ent = (Entity)modelAccessor(); // = Null 如果我错过了,任何人都可以解释它的目的是什么?或者,如何正确使用它? 谢谢 解决方法我们最初把它当做“对象模型”,而不是“Func modelAccessor”.我们不得不在MVC 2的船周期之后改变它.目的是延迟检索模型的实际值,直到你知道你将需要它(即,直到你调用ModelMetadata.Model)为止. 它解决的问题实际上是一个相当深奥的一个相关的模型绑定一个LINQ to SQL类,其中有一个外键引用.问题是,如果您检索到由外键关系表示的子对象(通常意味着该对象的延迟加载),则不再允许通过设置外键来选择新的子对象ID属性.在模型绑定时,建模绑定外键ID(而不是整个外键实体)是很常见的,但是如果我们检索到外键实体对象(为了填充ModelMetadata类),那么该绑定就不再是合法的,实际上是抛出一个例外.由于ModelMetadata用于模型的两个方向 – 通过模型绑定和出站,通过HTML生成 – 我们需要引入间接层,以保护您在两种情况下使用它的能力,而不会中断LINQ to SQL的规则. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 内联JavaScript的外部JavaScript文件
- asp.net – MVC5认证中的“和主域之间的信任关系失败”
- asp.net – 处理原始HTTP请求内容
- ASP.NET sessionState SQLServer模式超时不起作用
- 更改生成的ASP.Net ID?
- 有没有办法将内部控件放在ASP.NET自定义控件中?
- ASP.NET MVC 3使用身份验证
- asp.net-mvc-2 – 如何在ASP.NET MVC中实现自定义主体和标识
- ASP.NET MVC3(Razor)中的视图中局部变量的简单增量
- asp.net-mvc – 确定哪个控制器和操作在ASP.NET MVC中处理特
- Owin错误与ASP.NET MVC应用程序
- 如何使用asp.net和c#流式传输Excel 2007或Word 2
- asp.net-mvc-3 – 在F#中的ViewBag动态对象上设置
- asp.net – 要排除的Nuget和源控制文件?
- asp.net-mvc – 如何在Visual Studio 2015中快速
- 长时间运行的任务 – 最佳实践 – ASP.NET 4.0,C
- asp.net-core – TagHelper,用于将路由值作为链接
- asp.net-mvc – ASP .Net MVC 3:子动作和重定向
- asp.net-mvc – 如何在MVC Filter属性中解析依赖
- asp.net – MVP MVC和MVVM之间的区别
