I'm using Razor templates and I've defined a variable in the page templates. How can I used the variable in the component template using razor?

In my Razor template I have:

    string hotelTCM = @Package.Hotel_ID;

How can I use it in a embbeded component template?

  • Are you talking about a variable defined in your Razor template? Something on the package? A metadata field...? Clarify your question. – Ant P Feb 20 '14 at 19:12
  • Please update your question with your code, screenshots, etc. – Nickoli Roussakov Feb 20 '14 at 19:13

Package variables (and the package instance) are independent to the Template item, meaning a package variable from a Page Template will not be available to a Component Template, since the latter has its own package instance.

If you want to pass variables between Templates (Page -> Component) you can use a ContextVariable, see also https://code.google.com/p/tridion-practice/wiki/PassContextFromOneComponentRenderToAnother

// in your Page Template
engine.PublishingContext.RenderContext.ContextVariables.Add("contextBag", contextBag);


// in your Component Template
var contextBag = (Dictionary<string, object>)engine.PublishingContext.RenderContext.ContextVariables["contextBag"];


I have to add, this is the case for the Modular Templating Framework using DWT TBBs, I'm not a 100% sure this also counts for the Razor Mediator which you are using.

| improve this answer | |

You can use it by writing the following in your template.

if(!string.IsNullOrEmpty()) {

More information is in the documentation;

    int x = 123;
    bool test = true;
    string y = "because.";
    var greeting = "Hello";

<div>@(test ? y : greeting)</div>
| improve this answer | |
  • This works if I use the variable in the same page template. But If I try to use it in a embbeded component template doesn't work. Actually, I can save the razor component template because it doesn't interpret @*hotelTCM. I've tried @*Package.Hotel_ID and didn't work... – Aroma Feb 21 '14 at 9:30
  • Please provide more information about what you want to achieve what you have and have done – user219 Feb 21 '14 at 9:40

Your Answer

