The Action Context is an essential element of the Mojito framework that gives you access
to the frameworks features from within a controller function. To use the Action Context,
you create an instance of the ActionContext class, which we will call ac for
short. From ac, you can call methods to execute mojit actions within either a server
or client context. See the ActionContext Class
for the methods available from ac.

One of the most common methods used from an instance of the ActionContext class is
done, which lets you pass data from the controller to a view. You can also optionally
pass meta data that contains the view name, mojit definitions, binders, assets, HTTP information,
and a callback function. We’ll look at the meta object more closely in the next
section.

By default, Mojito builds the metadata that is used when the method done executes and
renders a template. You can, however, pass an object to override the defaults, such as the
view name, mojit definitions, the assets, the view engine, HTTP information, etc.

Generally, the only time you would need to pass the meta object is in the following
cases:

In the first case, suppose you want the index function of your controller to use the template
foo.hb.html instead of the default index.hb.html. You would call ac.done with the
following meta object (second argument) as shown below:

...index:function(actionContext){ac.done({data:"Example of how to specify the templates"},{view:{name:"foo"}});}...

In the more complicated second case where metadata needs to be passed to either ac.composite.done
or ac._dispatch so a parent mojit can execute children,
you may need to merge the metadata of both the parent and children. Below is
an example meta object containing mojit definitions and metadata about binders, assets,
and the HTTP response.