4

私は Tridion の開発にまったく慣れておらず、最初の「基本的な」問題を抱えています。TBB で (コンテンツ マネージャーのテキスト エディターを使用して) シンプルな C# コード フラグメントを作成し、エンジン、パッケージ、およびログ フィールドを使用しようとしましたが (これらは Tridion によって利用可能になっていることがわかっているため)、「その名前はコンテキストに存在しません。」コードは次のとおりです。

<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="utf-8" %>
<div>
        <!-- TemplateBeginRepeat name="Component.Fields.crociera" -->
              <!-- TemplateBeginIf cond="prezzo<250" -->
                     Go to @@location@@<br/>
              <!-- TemplateEndIf -->
        <!-- TemplateEndRepeat -->
</div>
<%
String ts = DateTime.Now.ToString("d MMM yyyy");
Response.Write("<br/>"+ts);
engine.getSession();
%>

TBB を保存してページを公開すると、次のエラーが表示されます。

Compilation Error

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: CS0103: The name 'engine' does not exist in the current context

Source Error:


Line 31: Response.Write("<br/>"+ts);
Line 32: engine.getSession();
Line 33: %>                         
Line 34:                  </div>

Source File: c:\inetpub\wwwroot\stage\pj\ricerca\ricerca.aspx    Line: 32 

おそらく私は何かを見逃しているか、何か間違ったことをしています。誰かが問題を認識していますか?

4

2 に答える 2

11

使用Engineするオブジェクトは Tridion の TOM.NET API の一部であり、アイテムが公開されている間だけコードで使用できます。

ASPX ページがフロントエンド サーバーに到達すると、TOM.NET API は使用できなくなります。その理由の 1 つは、Web サーバーから Tridion Content Manager にアクセスできなくなったことです。

TOM.NET API を介して Tridion Content Manager に対してプログラミングする代わりに、その API を介して Tridion Content Delivery に対してプログラミングする必要があります。Live Docsで一般的なケースのドキュメントを見つけることができます(ログインが必要です)。

于 2012-11-07T11:25:20.833 に答える
3

C# フラグメントを適切に作成する方法については、C# TBB にユーザー定義メソッドを追加する方法 (C# コード フラグメント)? を参照してください。

于 2012-11-07T11:00:00.373 に答える