As you say the MVC app is not stopped then rebuilt, right? If so, then the view has not been made "available" for processing by ASP.NET. This means, view has to be discovered (the selected, usu. default, VirtualPathPovider is responsible for this), then the view needs to be compiled (the selected View Engine does this), and only then the view becomes "available" for viewing (pardon the expression).
Once available you can change it many times. No explicit re-compilation is needed.
The overall process is described here (Automatic Compilation section) and here.
If you are curious from where your site is served change the following setting in web.config:
<system.web>
...
<compilation ... tempDirectory="c:\temp\asp.net" />
...
</system.web>
and you'll see where the compiled files go. So, you have to ensure that the files are copied to the output folder after you dynamically create them. To make things even worse you have to take care of all css, .js, pictures and all other possible contents your view(s) may have.