我正在使用Tridion 2011(使用DD4T,提供MVC webapp).
似乎多媒体组件的MetaData字段(在Tridion中的图像模式的元数据选项卡上指定)没有填充DD4T"组件"对象上的相应属性.例如LinkedComponentFields[0].MetadataFields是空的并且Multimedia.AltText为空.
特别是我追求的字段是AltText.但由于整个MetadataFields集合在Component上是空的,因此显然不会通过任何元数据属性.我已经尝试使用TemplateBuilder在组件模板中设置参数(我将"解析宽度和高度"设置为yes,将MergeAction设置为Merge) - 这没有帮助.
有任何想法吗?
任何人都可以指导我如何在DD4T代码中使用Razor模板中的SiteEdit特定语法或标签?我已经在其中看到了Site Edit相关的类,但是无法理解如何在视图中使用SiteEdit标签,其中有一些类似于Dreamweaver的语法RenderComponentField或tcdl:ComponentField我们在Dreamweaver中使用的语法.我是DD4T的新手,我正在使用SiteEdit 2009 SP3和SDL Tridon 2011 SP1.
提前致谢.
更新:我们已经尝试了答案中提到的实现,但遗憾的是,当我们访问代理页面时出现"无效模板"时,我们收到错误 - HTML无效,可能是因为您的模板代码产生了无效的HTML,例如内部的ap标签使用W3C标记验证服务等验证程序检查HTML,更正模板并重新发布." 我想这是因为我们在组件和页面模板中使用了动态页面和组件TBB,因此Xml内容被推送到html页面.
让我们知道如何继续下去.
是否可以从TBB动态设置元数据字段的值?或者是否可以从TBB动态添加不一定存在于架构中的元数据字段?
我想这样做的原因是我使用的是DD4T,我希望将面包屑自动添加到DD4T xml中.
我尝试过以下方法:
public override void Transform(Engine engine, Package package)
{
Initialize(engine,package);
var page = GetPage();
string output = page.OrganizationalItem.Title;
var parent = page.OrganizationalItem as StructureGroup;
while (parent != null)
{
output = GetLinkToStructureGroupIndexPage(parent) + Separator + output;
parent = parent.OrganizationalItem as StructureGroup;
}
// I tried this to dynamically add the field
//var metadata = page.Metadata.OwnerDocument.CreateElement("breadcrumb");
//metadata.InnerText = output;
//page.Metadata.AppendChild(metadata);
//I tried this to dynamically set an existing field on the schema
foreach (XmlNode xml in page.Metadata)
{ …Run Code Online (Sandbox Code Playgroud) 我试图在我的应用程序中解决UI2012的几个问题,似乎无法让我的组件在正确的上下文中可编辑.我总是要点击"在任何地方编辑此组件"或"本地化此组件"以编辑某些内容.
我的蓝图目前非常简单:
这是我的siteedit_config.xml
<?xml version="1.0" encoding="utf-8"?>
<siteEdit enabled="true" style="SiteEdit2012" tridionHostUrl="http://mycmsurl">
<contextPublications>
<contextPublication id="9" componentPublication="5" pagePublication="9" publishPublication="9" />
</contextPublications>
</siteEdit>
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
我正在使用DD4T框架与SDL Tridion 2011和ASP.NET MVC4
我有一些非DD4T控制器和视图,我想使用,但是当我尝试去这些网址时,我收到404错误.
这是我的路线表
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
// Route for SDL Tridion UI 2011 (Aka !SiteEdit)
routes.MapRoute(
"SiteEditBlankPage",
"se_blank.html",
new { controller = "Empty", action = "Index" });
routes.MapRoute(
null, // Route name
"xml/{*PageId}", // URL with parameters
new { controller = "Page", action = "Xml" }, // Parameter defaults
new { pageId = @"^(.*)?$" } // Parameter constraints
);
// Tridion page route
routes.MapRoute(
"TridionPage",
"{*PageId}",
new { controller = "Page", action = …Run Code Online (Sandbox Code Playgroud) 在DD4T视图中,我试图在类别中选择关键字的Path值.
foreach(var category in @Model.Categories)
{
if (category.Title.Contains("Taxonomy"))
{
str = category.Keywords[0].Path;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
但在@ Model.Categories中变为null.
错误:对象引用未设置为对象的实例.
虽然数据存在于XML中.
请建议.
我正在使用Tridion 2011实现DD4T MVC3.我已经实现了它并且它正常工作到上周五.我能够获取页面模型并使用Razor视图呈现它.
但是今天周末之后,当我试图运行相同的应用程序时,我得到以下错误(从两行开始).
Tridion许可证将于今天(2012年4月30日)到期.这会有问题吗?但Tridion Content Manager工作正常.
Could not initialize class com.tridion.storage.StorageManagerFactory
================================================
Some configured classpath roots cannot be found
================================================
ClassPath : C:\MyProjects\DD4TMVC\FirstDD4TMVCApplication\FirstDD4TMVCApplication\bin\bin
============================================================
Some Java classes or interfaces could not be found or loaded
The most typical reasons for this problem are:
- you forgot to configure a classpath
- a jarfile, zipfile, or directory is missing from your
classpath
- you have a typo in one of your classpath entries
- a jarfile required by one of …Run Code Online (Sandbox Code Playgroud)