Table of Contents

Class ViewModelBase

Namespace
Dynamicweb.Rendering
Assembly
Dynamicweb.Core.dll

ViewModelBase represents a view model that can be used for rendering templates using a model instead of template tags. Inherit from this base class to create a view model.

public abstract class ViewModelBase
Inheritance
ViewModelBase
Derived
Inherited Members

Examples

using Dynamicweb.Rendering;

namespace Dynamicweb.Examples.Rendering;

/// <summary>
/// ViewModelSample shows how to implement a view model.
/// The class inherits from <see cref="ViewModelBase"/> so that it can be used in a view model template.
/// </summary>
public class ViewModelSample : ViewModelBase
{
    public ViewModelSample()
    {
    }

    public int Number { get; set; }

    public string Text { get; set; } = "";
}
using Dynamicweb.Rendering;

namespace Dynamicweb.Examples.Rendering;

/// <summary>
/// ViewModelTemplateSample shows how to use a view model.
/// </summary>
public static class ViewModelTemplateSample
{
    /// <summary>
    /// How to render a view model.
    /// </summary>
    public static string RenderViewModel()
    {
        // create an instance of the view model
        var model = new ViewModelSample
        {
            Number = 123,
            Text = "abc"
        };

        // create a template
        var template = new Template("SampleTemplate.cshtml");

        // set the view model
        template.SetViewModel(model);

        // render the template
        return template.Output();
    }

    /// <summary>
    /// How to render a view model or template tags depending on the selected template.
    /// </summary>
    public static string RenderViewModelOrTags()
    {
        // create a template
        var template = new Template("SampleTemplate.cshtml");

        // check if the selected template is a view model template (@inherits ViewModelTemplate<>)
        if (template.IsViewModelTemplate)
        {
            // create an instance of the view model
            var model = new ViewModelSample
            {
                Number = 123,
                Text = "abc"
            };

            // set the view model
            template.SetViewModel(model);
        }
        else
        {
            // set template tags
            template.SetTag("Number", 123);
            template.SetTag("Text", "abc");
        }

        // render the template
        return template.Output();
    }
}

Methods

ToJson()

public virtual string ToJson()

Returns

string
To top