Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Embedding View files as resource inside Binary

Tags:

asp.net-mvc

I am trying to create a .Net Library with few Controllers, and i want to reuse them in Multiple web projects.

I'm half way through, But problem i'm getting is , Whenever i add the library to the new web project , i need to copy all corresponding view files separately to the new project. Whenever i update the library, i need to repeat the steps again.

Is there any way , i can embed View files inside dll as resource , and pass it to "View()" function as an embedded resource.

What i want to achieve is , I want to put controller and corresponding views inside single dll file, so that i can easily distribute/manage the library as a single dll file

( Oneway i already found , is creating custom view class with IView Interface and Render the output directly by writing to HTML Output Writer, But i prefer to use the View file.)

like image 953
Palani Avatar asked Mar 21 '09 10:03

Palani


1 Answers

Phil Haack just posted a blog post a few days ago that would probably help you; He's using a database to store the views and ruby to process them, but I would think you could take his prototype and make it work for views stored in a separate assembly fairly easily.

Just a quick glance through the code and I think the magic sauce is going to be implementing VirtualPathProviderViewEngine (See the "RubyViewEngine" class for example) and inserting your ViewEngine into ViewEngines.Engines Collection (see Global.asax.cs).

like image 79
Chris Shaffer Avatar answered Sep 17 '22 09:09

Chris Shaffer