I am looking at building a web configurable layout engine, and would like to directly use the razor engine under the hood.
Lets say I have some information available via classes, xml, or a database - I want to convert that into native razor code at runtime (by this I mean to imply my source of defining content and structure is based on a provider model). Rather than convert an xml file or something on the fly every request I figured I might as well just write Razor, and let that view engine take care of everything.
Can I plug razor code directly into the engine from a source that is not the file system?
Will there be any gotchas if I dynamically generate .cshtml views and layouts into files at run-time [and dynamically set those views in the controller actions]?
It is possible to do. Razor will have some more gotcha moments than classic Webforms view engine but here are some resources:
http://rebuildall.umbraworks.net/2009/11/17/ASP_NET_MVC_and_virtual_views
Using custom VirtualPathProvider to load embedded resource Partial Views
Storing ASP.Net MVC Views in the Database
ASP.NET MVC load Razor view from database
You'll be creating a custom ViewEngine that will determine where to look for the views. Views can be stored on the file system, in the database or as an embedded resources. Read up on the links I provided and it should get you going!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With