首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Tridion中从XML检索类别时出错(DD4T - MVC)

在Tridion中从XML检索类别时出错(DD4T - MVC)
EN

Stack Overflow用户
提问于 2012-06-19 13:24:27
回答 5查看 413关注 0票数 4

在DD4T视图中,我试图选择类别中关键字路径的值。

代码语言:javascript
复制
foreach(var category in @Model.Categories)
{
    if (category.Title.Contains("Taxonomy"))
    {
        str = category.Keywords[0].Path;            

        break;
    }
}

但是在@Model.Categories中获得null。

错误:对象引用未设置为对象的实例。

尽管数据存在于XML中。

请建议一下。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-06-19 21:21:45

我发现这是DD4T中的一个问题。解决方法非常简单:如果您使用组件(或页面)的实现作为您的模型,而不是使用接口,那么它可以工作。

所以,从以下几个方面开始你的观点:

代码语言:javascript
复制
@model DD4T.ContentModel.Component

而不是

代码语言:javascript
复制
@model DD4T.ContentModel.IComponent

再试一次。

票数 7
EN

Stack Overflow用户

发布于 2012-06-20 19:53:11

我已经在DD4T Google代码站点这里中记录了这个问题。

这似乎是由于列表和IList不支持逆方差造成的,这意味着如下行:

代码语言:javascript
复制
IList<ICategory> IComponent.Categories
{
    get { return Categories as IList<ICategory>; }
}

在ContentModel类中永远无法工作。到处挖的建议是将此更改为IEnumerable,这确实支持逆方差。

票数 4
EN

Stack Overflow用户

发布于 2012-06-20 05:51:44

它在实现Quirijn建议后工作,如组件c=(组件)模型;c.Categories.

谢谢你,维卡斯·库马尔

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11101919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档