2

Razorテンプレートを使用して、出力として.aspxページを生成しようとしています。これを行う方法については、ドキュメントを見ることができません。ページと名前空間の宣言がテンプレートを壊しています:

<%@ Page Language="C#" Title="@Page.Metadata.browser_title" %>
<%@ Import Namespace="System.Xml" %>

これらがこのエラーの原因です。

TemplateCompileException:CS1501:メソッド'Write'のオーバーロードなしは0個の引数を取ります行27列1:Write();

これは、C#構文を使用するRazorテンプレートでは、上記の宣言で「@」が使用されているため、2つの競合が発生するためだと思います。テンプレートの実行後にRazorテンプレートがレンダリングされた製品でC#を使用して出力を生成できるように、それらを連携させる方法はありますか?上記の例は、「タイトル」の値をテンプレートからレンダリングする方法も示しています。

4

3 に答える 3

6

@s<%は無効なRazor構文です。
あなたは書くことによってそれらを脱出する必要があります<%@@

于 2012-06-01T19:16:14.963 に答える
2

Razorが気に入った場合は、DD4T(http://code.google.com/p/dynamic-delivery-4-tridion/)をチェックしてください。これにより、RazorビューでASP.NetMVCを使用してWebサイトを構築できます。

于 2012-06-02T13:58:53.127 に答える
1

C#TBBを記述して、すべてのRazormediatorテンプレートの後にタグを追加できます。また、デフォルトの終了アクション(使用している場合)の後に追加できる場合はさらに優れています。

迅速で汚いサンプルコード...

  Item OutputItem = package.GetByName(Package.OutputName);
  string OutputText = OutputItem.GetAsString();

  // Page tag declaration..
  string pagePretags = @"<<TWO LINES OF DECLARATIONs..>>"
  string FinalOutputText = pagePretags + OutputText ;

  OutputItem.SetAsString(FinalOutputText);

お役に立てれば..

于 2012-06-01T19:25:54.887 に答える