The model-view-presenter pattern is a very powerful way to manage user interaction. It seems popular to use it on the server-side when creating HTML, but why not use it client-side instead?
Our computers are powerful enough to run fairly complex JavaScript. Why burden the server with having to render the page contents?
In this screencast I use Script# to compile a C# project into JavaScript. This project contains the Model, View and Presenter logic.
The HTML page then uses the generated JavaScript.
There is a simple REST service on the server that returns data which is called by the Model. No HTML generation occurs on the server.
Download the source code. You must have Script# installed as well.