Comments (5)
I found a solution to this issue. I use a non-template .cshtml view as a wrapper around the template. This allows it to have the context's set.
In the controller, there are two functions. One that returns the wrapper view, and a second called by the wrapper to actually compile the template with RazorEngine.
public ActionResult Edit(int id)
{
:
// Create VM and such
:
return PartialView(vm);
}
[ChildActionOnly()]
public string EditTemplate(MyViewModel vm)
{
return RazorEngine.Razor.Parse(this.MyTemplate, vm, "MyTemplateName");
}
Then, the View "wrapper" (Edit.cshtml) is;
@model MyNamespace.MyViewModel
@{ Html.RenderAction("EditTemplate", new { vm = Model }); }
Hope this helps.
from razorengine.
This work-around fixed my issue even though it is a hack. Any idea if this is an issue that can be fixed?
Rick
from razorengine.
I spent a few hours on this today. WebPageContext.Current is only available within a Razor view, hence your template rendering needs to occur within a view if you want to access Html helpers & ViewData.
I tried with no success to create a new instance of a WebPageContext from code outside of a Razor View.
This is why the above solution works - however it can be simplified. You do not need to call Html.RenderAction from within the View - you can just parse your template from within the View directly.
Cheers,
Anthony.
from razorengine.
Thanks!
from razorengine.
Is this really a bug within RazorEngine? It seems like the ASP.NET MVC API is just not designed to be used this way so there just is no easy way to provide this with RazorEngine.
Please re-open if I'm missing something here.
from razorengine.
Related Issues (20)
- RazorEngine Render ViewComponent And TagHelpers
- - error: (25, 6) The name 'model' does not exist in the current context - error: (18, 19) There is no argument given that corresponds to the required formal parameter 'componentContext' of 'ViewBase<InteractiveSubjectPageExportReport>.ViewBase(IComponentContext)'
- Image doesn't render HOT 1
- Anouncement: Security with `IsolatedRazorEngineService` HOT 4
- The name 'model' does not exist in the current context HOT 4
- Engine.Razor.Compile, Cant Locad Resource
- Vulnerability Remediation HOT 1
- How to fetch list of model keys from razor file?
- Exception 'Dynamic operations can only be performed in homogenous AppDomain'
- Build issue with v2 odata queries?
- When I use RazorEngine again, the input '' is transferred to&# 39. How can I solve this problem?
- action failed due to exception RazorEngine.Templating.TemplateCompilationException: Errors while compiling a Template.
- #115 The problem is not resolved in RazorEngine.NetCore HOT 3
- cshtml file with model in console app
- 'AppDomainSetup' does not contain a constructor that takes 0 arguments HOT 6
- encounter errors when use @Include in template
- Another Razor issue on flush with dynamic or anonymous types
- RazorEngine.Templating.TemplateCompilationException: error: (0, 0) An expression is too long or complex to compile
- Razor Nuget Packages for .NET 8.0 HOT 4
- System.Runtime.Serialization.SerializationException when call IsolatedRazorEngineService.Create() HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from razorengine.