MonoRail: How it works
MonoRail can be viewed as another implementation of IHttpHandler. It basically extracts information from the Url and searches for a controller in a binary tree. If found, the controller is created and from that point on, the controller handles the request.

The controller is able to select the action (method) to invoke, process the arguments (in the case of SmartDispatcherController) and delegate the execution to the action.
When the action returns, the controller checks if a view was selected (and no redirect was issued). If so the ViewEngine is invoked to process the selected view, which renders the content directly to the client's browser.
As MonoRail runs on top of Asp.Net infrastructure (not to be confused with WebForms) it takes advantage of all features like Session management, Application/Request level events and security.