I was thinking about giving end users the ability to drop Partial Views (controls) into the information being stored in the database. Is there a way to execute a string I get from the database as part of the Razor view?
Asked
Active
Viewed 2,794 times
7
-
Can you elaborate on what you are trying to do? Are you trying to store string "@Html.RenderPartial(\"SomeView.cshtml\")" in db, then get Razor engine to execute that in your template? – Daryl Teo Sep 23 '11 at 03:31
-
Daryl, that is exactly what I am talking about. – Sam Sep 23 '11 at 15:57
1 Answers
8
Update (I forgot all about this)
I had asked this question previously (which lead me to create RazorEngine) Pulling a View from a database rather than a file
I know of at least two: RazorEngine, MvcMailer
I have a bias towards RazorEngine as it's one that I've worked on but I have a much simpler one at Github called RazorSharp (though it only supports c#)
These are all pretty easy to use.
RazorEngine:
string result = RazorEngine.Razor.Parse(razorTemplate, new { Name = "World" });
MvcMailer
I haven't used this one so I can't help.
RazorSharp
RazorSharp also supports master pages.
string result = RazorSharp.Razor.Parse(new { Name = "World" },
razorTemplate,
masterTemplate); //master template not required
Neither RazorSharp, nor RazorEngine support any of the Mvc helpers such as Html
and Url
. Since these libraries are supposed to exist outside of Mvc and thus require more work to get them to work with those helpers. I can't say anything about MvcMailer but I suspect the situation is the same.
Hope these help.

Community
- 1
- 1

Buildstarted
- 26,529
- 10
- 84
- 95
-
This is not able to parse if the content has got some special characters in javascript code? like var x = '(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?'; – Rahatur Jan 09 '19 at 09:00
-
@Rahatur just like in cshtml you'll probably have to escape with two `@@` but it's been so long I'm just guessing here. – Buildstarted Jan 11 '19 at 06:21
-