我一直在阅读Microsoft.AspNet.Scaffolding.Core.Metadata命名空间;但是,我是这个对象模型的新手,也许我忽略了一些东西。我正在创建T4文本模板,并希望自动生成相关模型数据的输出。类似于ModelMetadata.RelatedModelMetadata.ModelMetadata.PropertyMetadata的东西,即
foreach (PropertyMetadata property in ModelMetadata.Properties) {
if (property.IsAssociation) {
RelatedModelMetadata relatedModel = property.RelatedModel
foreach (PropertyMetadata relatedProperty in relatedModel.Properties) {
// Do Something
}
}
}
这当然不会起作用,因为RelatedModelMetadata对象没有Properties集合;实际上所有的RelatedModelMetadata属性都是字符串。
任何提示都是你可能会感激的技巧。
谢谢!
答案 0 :(得分:-2)
在视图生成模板中,您可以访问Model.ModelMetadata.Navigations
属性。这是类似的"到RelatedModelMetadata ...我重复"类似"在引号中...相似性可能更多的是意图,而不是功能。
@foreach (var property in Model.ModelMetadata.Navigations)
{
//I do what I want!
}
每个property
都会为您提供属性