Git Product home page Git Product logo

Comments (6)

sfmskywalker avatar sfmskywalker commented on July 30, 2024

Correction: RazorEngine does execute the content template before the Layout template, so that's not the cause of the above mentioned error. After second thought, both the content template as the Layout template are individual instances of TemplateBase, so they each have their own Title property of course. I will try to see what I can do with the model, which should be shared by both template instances.

from razorengine.

sfmskywalker avatar sfmskywalker commented on July 30, 2024

Bummer, when resolving the Layout, it does not get an instance of the model :(.
So when rendering Layout, Model == null

from razorengine.

Antaris avatar Antaris commented on July 30, 2024

We could add a shared ViewBag property to the base template, this would have to be tracked through the ExecuteContext that manages the template execution. Will investigate today for you. The model type will need consideration, but I imagine we could simply reuse the same model type, and allow you to override it using @model in the layout.

from razorengine.

Antaris avatar Antaris commented on July 30, 2024

This now works. It would make sense for me to push a common ViewBag property into the base template type, which is what I have done. This means you don't need to implement in a custom base template type. There is a caveat, this only shares state between layouts and child templates.

If you are using @Include(...) then this creates a whole new ExecuteContext for that child rendering request.

from razorengine.

Antaris avatar Antaris commented on July 30, 2024

In regards to the Model issue, I'll address this through issue #6

from razorengine.

sfmskywalker avatar sfmskywalker commented on July 30, 2024

Great work, this will come in handy for my new project.

from razorengine.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.