Hi An,
As far as I know there shouldn't be any difference from running NVelocity in a
console vs hosted in ASP.NET.
Have you tried to hardcode true, and see what happens:
dataContext.Add("hasShippingInfo", true);
Cheers
John
________________________________
From: An Phu <[email protected]>
To: Castle Project Users <[email protected]>
Sent: Mon, 13 September, 2010 2:54:26 PM
Subject: Re: NVelocity not evaluating #if condition correctly.
Sorry, the output is just
hasShippingInfo : True
It does not have the <P> tags and the rest.
On Sep 12, 9:52 pm, An Phu <[email protected]> wrote:
> Hello,
>
> I have been struggling with this all weekend. I am hoping someone can
> help me with this. I have the following template.
>
> hasShippingInfo : $hasShippingInfo
> #if($hasShippingInfo)
> <P style=""FONT-FAMILY: Arial, Verdana, sans-serif; COLOR: #252525;
> FONT-SIZE: 12px"">
> <B>Shipping Method:</B> $ShippingMethod<BR>
> </P>
> #end
>
> The output I got is
>
> hasShippingInfo : True
> <P style="FONT-FAMILY: Arial, Verdana, sans-serif; COLOR: #252525;
> FONT-SIZE: 12px">
> <B>Shipping Method:</B> FedEx<BR>
> </P>
>
> It seems that NVelocity is not evaluating the if condition correctly.
> It returns false even though $hasShippingInfo is true, as shown in the
> output.
>
> The code I am using is as follows:
>
> // this data context is initialized somewhere else.
> var dataContext= new Hashtable();
> dataContext.Add("hasShippingInfo", hasShippingInfo);
> dataContext.Add("ShippingMethod", "FedEx");
>
> // the following code snippet are part of a emailer.
> var context = new VelocityContext(DataContext);
>
> Velocity.Init();
>
> using (var writer = new StringWriter())
> {
> if (!Velocity.Evaluate(context, writer, string.Empty,
> Template))
> {
> throw new Exception(string.Format("NVelocity
> encountered errrors evaulating template:\n{0}", Template));
> }
>
> content = writer.ToString();
> }
>
> When I take code out and put it into a console app, it works.
> NVelocity evalutes #if($hasShippingInfo) correct. In other words,
> $hasShippingInfo is true and the whole #if condition is true, and my
> output is rendered.
>
> But when I use it in an Emailer, that is used by a ASP.NET site, it
> fails. NVelcoity evaulates the #if condition as false even though
> $hasShippingInfo is true.
>
> Any help is much appreciated.
> An
--
You received this message because you are subscribed to the Google Groups
"Castle Project Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/castle-project-users?hl=en.
--
You received this message because you are subscribed to the Google Groups
"Castle Project Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/castle-project-users?hl=en.