Using Brail View Engine with ASP.NET MVC
In my last post I started to take a look at the Brail View Engine in ASP.NET MVC. In this post I’m going to take a quick look at some of the other details of using Brail.
Using strongly typed view
To access a variable called ‘Time’ in the ViewData we would use the following syntax:
<p>The time is now ${Time}</p>
To access a property called ‘Value’ on the ViewModel we would use the following syntax:
<p>Viewmodel's value is: ${viewData.Model.Value}</p>
Pretty neat and easy. I would have preferred just Model.Value, but it’s close enough.
Iterations
The MVC Contrib site makes no mention of how to do iterations or any type of evaluated code (that I could find). The MonoRail site has much better documentation, although not all of it is relevant to the MVC port. The following is a quote from the CastleProject site:
Brail supports two code separators <% %> and <?brail ?>, I find that <% %> is usually easier to type, but <?brail ?> allows you to have valid XML in the views, which is important for some use cases. Anything outside a <?brail ?> or <% %> is sent to the output. ${user.Id} can be used for string interpolation.
As far as I can tell only the <?brail ?> syntax is supported. The following is an example of an iteration.
<?brail for element in viewData.Model.Items:
output "<li>${element}</li>"
end ?>
Summary
Unfortunately this is where my journey with Brail ends. The syntax is decent but definitely not what I’m looking for – providing clean html to allow a designer to work closely with the views. The syntax for evaluated code is still too complex for my liking.
I had a look at some of the other view engines available and some of them show some definite promise. More on this will follow.