mailworx Razor Syntax

Alle mailworx-spezifischen Methoden und Eigenschaften werden über die Basisklasse "Model" aufgerufen.
Zusätzlich besteht auch die Möglichkeit, sämtliche Basis Funktionen von C# zu verwenden.

Übersicht des Models

Model. Campaign - Kampagnedaten
  Subscriber - Abonnentendaten
  Sections - Abschnittsdaten
  Editor - Editor Funktionen
  Template - Vorlagendaten und Hilfs Funktionen
  Utilities - Hilfsfunktionen

 

Allgemein

Model.​IsWebVersion

Rückgabewert: bool

Gibt an ob die Kampagne gerade im Browser geöffnet ist.

@if(Model.IsWebVersion) {
  ...
}

Model.​IsInEditMode

Rückgabewert: bool

Gibt an ob sich die Kampagne aktuell im Bearbeitenmodus(Kampagneneditor) befindet. Um das Layout an den Editor anzupassen.
Empfohlen ist hier ein Tabellenkonstrukt um den Newsletter zu erzeugen um eine maximale Breite festzulegen

@if (Model.IsInEditMode)
{
  @Raw("<table width=\"600\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\"><tr><td>")
}
...
@if (Model.IsInEditMode)
{
  @Raw("</td></tr></table>")
}

Model.​IsTestmail

Rückgabewert: bool

Diese Eigenschaft liefert True, wenn die Kampagne als Testmail versendet wird, an eine Testgruppe versendet wird, im Editiermodus oder im Homepage Archiv geöffnet wird. Bei Echt Aussendungen wird False gesetzt, außer der Abonnent wird gelöscht, dann wird die Personalisierung des Vorschauabonnenten verwendet und die Kampagne als Testmail gewertet.

@if(Model.IsTestmail) {
  ...
}

Kampagne

Model.​Campaign.​Name

Rückgabewert: string

Liefert den Namen der Kampagne.

<div>Der Name der Kampagne: @Raw(Model.Campaign.Name)</div>

Model.​Campaign.​Id

Rückgabewert: Guid

Liefert die eindeutige ID der Kampagne.

<div>Die eindeutige ID der Kampage: @Raw(Model.Campaign.Id.ToString())</div>

Model.​Campaign.​Subject

Rückgabewert: string

Liefert den eingegebenen Betreff der Kampagne oder die Betreffvarianten, welche im A/B Split Test für die aktuelle Versendung vorgesehen sind.

<head>
  <title>@Raw(Model.Campaign.Subject)</title>
</head>

Model.​Campaign.​SenderAddress

Rückgabewert: string

Liefert die Absenderadresse der aktuellen Kampagne.

<div>Diese Kampagne wurde von der Adresse @Raw(Model.Campaign.SenderAddress) versendet.</div>

Model.​Campaign.​SenderName

Rückgabewert: string

Liefert den Absender Namen der aktuellen Kampagne.

<div>Diese Kampagne wurde von @Raw(Model.Campaign.SenderName) versendet.</div>

Model.​Campaign.​ShowTableOfContents

Rückgabewert: bool

Gibt an, ob das Inhaltsverzeichnis in dieser Kampagne über die Option "Inhaltsverzeichnis anzeigen" in den Eigenschaften der Kampagne angezeigt werden soll.

@if(Model.Campaign.ShowTableOfContents) {
  <table cellpadding="0" cellspacing="0" border="0">
    @foreach(var sec in Model.Sections.NonSingletonSections) {
      switch(sec.DefinitionKey) {
        case "article":
          <tr>
            <td>@sec.GetValue("template_field_for_article_headline")</td>
          </tr>
          break;
        case "teaser":
          <tr>
            <td>@sec.GetValue("template_field_for_teaser_headline")</td>
          </tr>
          break;
      }
    }
  </table>
}

Model.​Campaign.​ShowChangeProfile

Rückgabewert: bool

Gibt an, ob der "Daten ändern"-Button in der Kampagne zu sehen sein soll oder nicht.

Beispiel siehe Model.Campaign.ShowAnyButton

Model.​Campaign.​ShowForward

Rückgabewert: bool

Gibt an, ob der "Weiterleiten"-Button in der Kampagne zu sehen sein soll oder nicht.

Beispiel siehe Model.Campaign.ShowAnyButton

Model.​Campaign.​ShowUnsubscribe

Rückgabewert: bool

Gibt an ob der Abmelden Button in der Kampagne zu sehen sein oder nicht.

Beispiel siehe Model.Campaign.ShowAnyButton

Model.​Campaign.​ShowAnyButton

Rückgabewert: bool

Gibt an, ob einer der folgenden Buttons angezeigt werden soll, um das Umgebungs-HTML-Konstrukt auszublenden, wenn keine Buttons angezeigt werden sollen.

@if(Model.Campaign.ShowAnyButton) {
  <table cellpadding="0" cellspacing="0" border="0">
    <tr>
      @if(Model.Campaign.ShowChangeProfile) {
        <td>@Raw(Model.Template.GetChangeProfileLink("Daten ändern"))</td>
      }
      @if(Model.Campaign.ShowForward) {
        <td>@Raw(Model.Template.GetForwardLink("Weiterleiten"))</td>
      }
      @if(Model.Campaign.ShowAnyButton) {
        <td>@Raw(Model.Template.GetUnsubscribeLink("Abmelden"))</td>
      }
    </tr>
  </table>
}

Model.​Campaign.​ChangeProfileId

Rückgabewert: Guid

Liefert die ID des Formulars, welches als Daten Änderungs-Formular ausgewählt ist.

<div>Die eindeutige ID des Daten Änderungs-Formulars: @Raw(Model.​Campaign.​ChangeProfileId.ToString())</div>

Model.​Campaign.​CreatedDate

Rückgabewert: DateTime

Liefert das Erstellungsdatum der Kampagne.

...
  <td>@Model.Campaign.CreatedDate.ToString("dd.MM.yyyy")</td>
...

Model.​Campaign.​ShortCulture

Rückgabewert: string

Liefert die Sprache der Kampagne im 2 Zeichen Sprachen Format zurück. Hier die gängigsten Beispiele: de, en, fr, es, ...

switch(Model.Campaign.ShortCulture) {
  case "de":
    ...
    break;
  case "en":
    ...
    break;
}

Model.​Campaign.​SendType

Rückgabewert: Eworx.Mailworx.Architecture.Infrastructure.SendType

Gibt den Versende-Typ der aktuellen Kampagne zurück, um im Template darauf reagieren zu können.

switch(Model.Campaign.SendType) {
  case Eworx.Mailworx.Architecture.Infrastructure.SendType.Manual:
    <div>Diese Kampagne wird Manuell versendet.</div>
    break;
  case Eworx.Mailworx.Architecture.Infrastructure.SendType.EventDependent:
    <div>Diese Kampagne wird als Ergeignis einer Aktion versendet.</div>
    break;
  case Eworx.Mailworx.Architecture.Infrastructure.SendType.ABSplit:
    <div>Diese Kampagne wird als A/B Split Test versendet.</div>
    break;
}

Abonnent

Model.​Subscriber.​IsOptIn

Rückgabewert: bool

Gibt an, ob der Empfänger angemeldet ist oder nicht.

Model.​Subscriber.​OptOutDate

Rückgabewert: DateTime?

Gibt den Zeitpunkt an, seit dem der Abonnent abgemeldet ist. Wenn der Abonnent angemeldet ist, liefert diese Eigenschaft null.

Model.​Subscriber.​LastProfileChange

Rückgabewert: DateTime?

Gibt den Zeitpunkt der letzten Aktualisierung der Abonnentendaten an. Wurden die Daten des Abonnenten noch nie aktualisiert, liefert diese Eigenschaft null.

Model.​Subscriber.​Mailformat

Rückgabewert: Eworx.Mailworx.Architecture.Infrastructure.Mailformat

Gibt das Mailformat des Abonnenten an.

switch(Model.Subscriber.Mailformat) {
  case Eworx.Mailworx.Architecture.Infrastructure.Mailformat.Multipart:
    ...
    break;
  case Eworx.Mailworx.Architecture.Infrastructure.Mailformat.HTML:
    ...
    break;
  case Eworx.Mailworx.Architecture.Infrastructure.Mailformat.Text:
    ...
    break;
}

Model.​Subscriber.​Id

Rückgabewert: Guid

Gibt die ID des Abonnenten zurück.

Model.​Subscriber.​AccountId

Rückgabewert: Guid

Gibt die ID des Mandanten zurück, welchem der Abonnent zugewiesen ist.

Model.​Subscriber.​ShortCulture

Rückgabewert: string

Liefert die Sprache des Abonnenten im 2-Zeichen-Sprachen-Format zurück. Hier die gängigsten Beispiele: de, en, fr, es, ...

switch(Model.Subscriber.ShortCulture) {
  case "de":
    ...
    break;
  case "en":
    ...
    break;
}

Model.​Subscriber.​GetValue​(string fieldName)

Rückgabewert: string

Liefert den Wert des Feldes mit dem internen Namen "fieldName" zurück.

...
<td>
  Ihre E-Mail Adresse lautet @Raw(Model.Subscriber.GetValue("email"))
</td>
...

<td>
  Ihre E-Mail Adresse lautet max.mustermann@firma.at
</td>

Abschnitt

Model.​Sections.​GetSingletonValue​(string fieldName)

Rückgabewert: string

Liefert den eingegebenen Wert des Feldes mit dem internen Namen "fieldName", welcher in einem nicht wiederholbaren Abschnitt eingegeben wurde.
Alle Felder von nicht wiederholbaren Abschnitten sind überall in der Vorlage verfügbar und dürfen nur einmal existieren, doppelte Felder in einer Vorlage führen zu Fehlverhalten.

...
<td>
  Hier steht der Wert des Feldes "li_preheader": @Raw(Model.Sections.GetSingletonValue("li_preheader"))
</td>
...

Model.​Sections.​GetAttributeOfSingletonImageValue​(string fieldName, string attribute)

Rückgabewert: string

Liefert den eingegebenen Wert des Attributs des Bild Feldes mit dem internen Namen "fieldName", welcher in einem nicht wiederholbaren Abschnitt eingegeben wurde.
Folgende Attribute von einem Bild können abgefragt werden:

  • width
  • height
  • src

...
<td>
  @Raw(Model.Sections.GetAttributeOfSingletonImageValue("li_image", "width"))
</td>
...

Eworx.​Mailworx.​Administration.​Templates.​RazorTemplates.​RazorSection.​GetValue​(string fieldName)

Rückgabewert: string

Liefert den eingegebenen Wert des Feldes mit dem internen Namen "fieldName", welcher in einem wiederholbaren Abschnitt eingegeben wurde.

Beispiel siehe Model.Sections.NonSingletonSections

Eworx.​Mailworx.​Administration.​Templates.​RazorTemplates.​RazorSection.​GetAttributeOfImageValue​(string fieldName, string attribute)

Rückgabewert: string

Liefert den eingegebenen Wert des Attributs des Bild Feldes mit dem internen Namen "fieldName", welcher in einem wiederholbaren Abschnitt eingegeben wurde.

Folgende Attribute von einem Bild können abgefragt werden:

  • width
  • height
  • src

Beispiel siehe Model.Sections.NonSingletonSections

Eworx.​Mailworx.​Administration.​Templates.​RazorTemplates.​RazorSection.​DefinitionKey

Rückgabewert: string

Gibt den Typennamen des Abschnitts zurück, dient zum Unterscheiden, welches Layout verwendet werden soll.

Beispiel siehe Model.Sections.NonSingletonSections

Model.​Sections.​GetSectionForSingletonField​(string fieldName)

Rückgabewert: Eworx.Mailworx.Administration.Templates.RazorTemplates.RazorSection

Liefert den Abschnitt in dem das Feld mit dem internen Namen "fieldName" enthalten ist.

Model.​Sections.​Sections

Rückgabewert: List<Eworx.Mailworx.Administration.Templates.RazorTemplates.RazorSection>

Gibt alle Abschnitte der aktuellen Kampagne als Liste zurück. Hier sind alle wiederholbaren und nicht wiederholbaren Abschnitte vorhanden.

@foreach(var sec in Model.Sections.Sections) {
  ...
}

Model.​Sections.​SingletonSections

Rückgabewert: List<Eworx.Mailworx.Administration.Templates.RazorTemplates.RazorSection>

Gibt alle nicht wiederholbaren Abschnitte der aktuellen Kampagne als Liste zurück.

@foreach(var sec in Model.Sections.SingletonSections) {
  ...
}

Model.​Sections.​NonSingletonSections

Rückgabewert: List<Eworx.Mailworx.Administration.Templates.RazorTemplates.RazorSection>

Gibt alle wiederholbaren Abschnitte der aktuellen Kampagne als Liste zurück. Diese Liste wird meistens verwendet, wenn keine Bereich in der Vorlage definiert sind.

@if(Model.Campaign.ShowTableOfContents) {
  <table cellpadding="0" cellspacing="0" border="0">
    @foreach(var sec in Model.Sections.NonSingletonSections) {
      switch(sec.DefinitionKey) {
        case "article":
          <tr>
            <td>@sec.GetValue("template_field_for_article_headline")</td>
          </tr>
          <tr>
            <td>@sec.GetAttributeOfImageValue("template_field_for_article_image", "src")</td>
          </tr>
          break;
        case "teaser":
          <tr>
            <td>@sec.GetValue("template_field_for_teaser_headline")</td>
          </tr>
          break;
      }
    }
  </table>
}

Model.​Sections.​GetSectionsOfType​(string definitionKey)

Rückgabewert: List<Eworx.Mailworx.Administration.Templates.RazorTemplates.RazorSection>

Liefert alle Abschnitte des selben Typs "definitionKey" als Liste zurück.

<table cellpadding="0" cellspacing="0" border="0">
  @foreach(var sec in Model.Sections.GetSectionsOfType("article")) {
    <tr>
      <td>@sec.GetValue("template_field_for_article_headline")</td>
    </tr>
    <tr>
      <td>@sec.GetValue("template_field_for_article_text")</td>
    </tr>
  }
</table>

Model.​Sections.​GetSectionsOfArea​(string areaName)

Rückgabewert: List<Eworx.Mailworx.Administration.Templates.RazorTemplates.RazorSection>

Liefert die Liste aller Abschnitt in dem Bereich "areaName". Wird benötigt um verschiedene Inhaltsbereiche in einer  Vorlage zu definieren.

<table cellpadding="0" cellspacing="0" border="0">
  @foreach(var sec in Model.Sections.GetSectionsOfArea("Oben")) {
    if(sec.DefinitionKey == "article") {
      <tr>
        <td>@sec.GetValue("template_field_for_article_headline")</td>
      </tr>
      <tr>
        <td>@sec.GetValue("template_field_for_article_text")</td>
      </tr>
    }
  }
</table>

Editor

Model.​Editor.​SectionStart​(Eworx.Mailworx.Administration.Templates.RazorTemplates.RazorSection section, string tagName, int tdColspan, int tableWidth)

Rückgabewert: string

Startet im Editor den Anfang des Bearbeitbaren Bereichs eines wiederholbaren Abschnitts. Hier werden die Schaltflächen zum bearbeiten(Eigenschaften, kopieren, verschieben, ...) des Abschnitts erstellt.
Der "tagName" ist der Name des ersten HTML Tags in dem Abschnitt.
"tdColspan" ist ein optional Parameter und gibt an wieviel Colspan der erste HTML Tag, wenn es ein td Tag ist hat. Standadwert ist 1, wenn nichts angegeben wird.
Der Parameter "tableWidth" kann benutzt werden um der erzeugten Struktur eine Breite vorzugeben, da hier ansonsten ein fit-to-content verhalten ausgelöst wird.

@Raw(Model.Editor.GetAreaPlaceholder("", "table"))
@foreach (var sec in Model.Sections.NonSingletonSections) {
  @Raw(Model.Editor.SectionStart(sec, "table"))

  switch(sec.DefinitionKey) {
    case "article":
      <table>
        ...
      </table>
      break;
    case "teaser":
      <table>
        ...
      </table>
      break;
  }
    
  @Raw(Model.Editor.SectionEnd(sec, "table"))
}

Model.​Editor.​SectionEnd​(Eworx.Mailworx.Administration.Templates.RazorTemplates.RazorSection section, string tagName)

Rückgabewert: string

Dient zum Beenden des editierbaren Bereichs des Abschnitts. Hier müssen nur der Abschnitt und der entsprechende Tag Name angegeben werden.

Beispiel siehe Model.Editor.SectionStart

Model.​Editor.​GetAreaPlaceholder​(string areaName, string tagName)

Rückgabewert: string

Definiert einen Bereich in den die Abschnitte eingefügt werden. Werden in der Vorlage keinen bereiche benötigt, muss der areaName leer gesetzt werden.
Werden mehrere Bereiche verwenden dürfen sich diese nicht im selben Elternelement enthalten sein, da ansonsten das Einfügen und sortieren der Abschnitte nicht korrekt funktioniert.

Beispiel siehe Model.Editor.SectionStart

Model.​Editor.​GetEditor​(string fieldName, Eworx.Mailworx.Administration.Templates.RazorTemplates.RazorSection section)

Rückgabewert: string

Anders als Model.Sections.GetSingletonValue & Eworx.Mailworx.Administration.Templates.RazorTemplates.RazorSection.GetValue, welche nur zum auslesen der Feldwerte dienen, kann der Feldwert im Kampagneneditor bearbeitet werden.
Je nach verwendetem Feld Typ, wird ein Editor gestartet. Nicht alle verfügbaren Feldtypen können direkt im Editor mittels WYSIWYG bearbeitet werden, unterstützt der Feldtyp das Editieren nicht, wird nur der Wert ausgelesen.

Wird keine Abschnitt oder null als 2. Parameter übergeben, so versucht mailworx ein Feld mit dem internen Namen fieldName, aus den nicht wiederholbaren Abschnitten zu laden.

Folgende Typen unterstützen den WYSIWYG Editor:

  • Text
  • Notiz
  • Bild

@Raw(Model.Editor.GetAreaPlaceholder("", "table"))
@foreach (var sec in Model.Sections.NonSingletonSections) {
  @Raw(Model.Editor.SectionStart(sec, "table"))
  switch(sec.DefinitionKey) {
    case "article":
      <table>
        <tr>
          <td>@Model.Editor.GetEditor("template_field_for_article_image", sec)</td>
        </tr>
        <tr>
          <td>@Model.Editor.GetEditor("template_field_for_article_headline", sec)</td>
        </tr>
        <tr>
          <td>@Model.Editor.GetEditor("template_field_for_article_text", sec)</td>
        </tr>
      </table>
       break;
  ...
  }
  @Raw(Model.Editor.SectionEnd(sec, "table"))
}

Vorlage

Model.​Template.​CreateWebVersionLink​()

Rückgabewert: string

Generiert die URL um die Kampagne im Browser anzuzeigen, dieser Link ist personalisiert auf den jeweiligen Empfänger.

<a href="@Model.Template.CreateWebVersionLink()">Browseransicht</a>

Model.​Template.​GetTemplatePath​(string resource)

Rückgabewert: string

Erstellt die URL zur entsprechenden Resource im Template Verzeichnis.
Wird kein Parameter übergeben wird nur der Pfad zum Verzeichnis selbst ausgelesen

<img src="@Model.Template.GetTemplatePath("logo.png")" />
<img src="@Raw(Model.Template.GetTemplatePath())logo.png" />

Model.​Template.​GetAppPath​()

Rückgabewert: string

Liefert die URL zu mailworx, hier wird die eingestellte Subdomain verwendet.

Beispiel siehe Model.Template.GetTemplatePath

Model.​Template.​GetStaticLinkUrl​(string internalStaticLinkName)

Rückgabewert: string

Liefert die URL zum Statischen Link in der Vorlage.

<a href="@Raw(Model.Template.GetStaticLinkUrl("staticlink"))">Statischer Link</a>

Model.​Template.​GetSectionAnchor​(Eworx.Mailworx.Administration.Templates.RazorTemplates.RazorSection section)

Rückgabewert: string

Generiert einen Anker für den übergebenen Abschnitt.

@foreach (var sec in Model.Sections.NonSingletonSections) {
  @Raw(Model.Template.GetSectionAnchor(sec))
  ...
}

Model.​Template.​GetAnchorToSectionStart​(Eworx.Mailworx.Administration.Templates.RazorTemplates.RazorSection section)

Rückgabewert: sring

Erstellt einen öffnenden a Tag mit dem Anker zum übergebenen Abschnitt

@if(Model.Campaign.ShowTableOfContents) {
  <table cellpadding="0" cellspacing="0" border="0">
    @foreach(var sec in Model.Sections.NonSingletonSections) {
      switch(sec.DefinitionKey) {
        case "article":
          <tr>
            <td>@Model.Template.GetAnchorToSectionStart(sec)<span>@sec.GetValue("template_field_for_article_headline")</span>@Model.Template.GetAnchorToSectionEnd()</td>
          </tr>
          break;
        case "teaser":
          <tr>
            <td>@Model.Template.GetAnchorToSectionStart(sec)<span>@sec.GetValue("template_field_for_teaser_headline")</span>@Model.Template.GetAnchorToSectionEnd()</td>
          </tr>
          break;
      }
    }
  </table>
}

Model.​Template.​GetAnchorToSectionEnd​()

Rückgabewert: string

Erstellt einen schließenden a Tag für Model.Template.GetAnchorToSectionStart, da Razor öffnende und schließende Tags prüft und nicht kompilieren kann, wenn die Anzahl der öffnenden und schließenden tags nicht übereinstimmt.

Beispiel siehe Model.Template.GetAnchorToSectionStart

Model.​Template.​GetSectionAnchorHrefValue​(Eworx.Mailworx.Administration.Templates.RazorTemplates.RazorSection section)

Rückgabewert: sring

Erstellt die URL für den Anker zum übergebenen Abschnitt.

@if(Model.Campaign.ShowTableOfContents) {
  <table cellpadding="0" cellspacing="0" border="0">
    @foreach(var sec in Model.Sections.NonSingletonSections) {
      switch(sec.DefinitionKey) {
        case "article":
          <tr>
            <td><a href="@Model.Template.GetSectionAnchorHrefValue(sec)" style="color:red;">@sec.GetValue("template_field_for_article_headline")</a></td>
          </tr>
          break;
        case "teaser":
          <tr>
            <td><a href="@Model.Template.GetSectionAnchorHrefValue(sec)" style="color:red;">@sec.GetValue("template_field_for_teaser_headline")</a></td>
          </tr>
          break;
      }
    }
  </table>
}

Model.​Template.​GetOpenTracker​()

Rückgabewert: string

Erstellt den Öffnungs und Lesetracker für die Kampagne. Am besten wird der Tracker am Ende des Templates eingefügt.
ACHTUNG! Wenn dieser nicht im Template vorhanden ist, wird die Statistik falsch erstellt und mailworx kann nicht alle Reaktionen mitprotokolieren.

    ...
    @Model.Template.GetOpenTracker()
  </body>
</html>

Model.​Template.​GetChangeProfileLink​(string text)

Rückgabewert: string

Erstellt den Daten ändern Link(gesamter a Tag) mit dem übergebenen Text.

@Raw(Model.Template.GetChangeProfileLink("meine Daten ändern"))

Beispiel siehe Model.Campaign.ShowAnyButton

Model.​Template.​GetForwardLink​(string text)

Rückgabewert: string

Erstellt den Weiterleiten Link(gesamter a Tag) mit dem übergebenen Text.

@Raw(Model.Template.GetForwardLink("weiterleiten"))

Beispiel siehe Model.Campaign.ShowAnyButton

Model.​Template.​GetUnsubscribeLink​(string text)

Rückgabewert: string

Erstellt den Abmelden Link(gesamter a Tag) mit dem übergebenen Text.

@Raw(Model.Template.GetUnsubscribeLink("abmelden"))

Beispiel siehe Model.Campaign.ShowAnyButton

Model.​Template.​GetChangeProfileURL​()

Rückgabewert: string

Gibt den Daten ändern Link zurück. Dieser muss händisch in eine a Tag als href Attribut angegeben werden.

@Raw(Model.Template.GetChangeProfileURL())

Model.​Template.​GetForwardURL​()

Rückgabewert: string

Gibt den Weiterleiten Link zurück. Dieser muss händisch in eine a Tag als href Attribut angegeben werden.

@Raw(Model.Template.GetForwardURL())

Model.​Template.​GetUnsubscribeURL​()

Rückgabewert: string

Gibt den Abmelden Link zurück. Dieser muss händisch in eine a Tag als href Attribut angegeben werden.

@Raw(Model.Template.GetUnsubscribeURL())

Beispiel siehe Model.Campaign.ShowAnyButton

Werkzeuge

Model.​Utilities.​UrlEncode​(string text)

Rückgabewert: string

Konvertiert einen String, für die Übertragung in einer URL.

@Raw(Model.Utilities.UrlEncode("Text"))

Model.​Utilities.​UrlDecode​(string text)

Rückgabewert: string

Konvertiert einen String, aus einer URL zurück.

@Raw(Model.Utilities.UrlDecode("Text"))

Model.​Utilities.​ConvertColor​(string color, char typ)

Rückgabewert: float

Gibt den konvertieren Wert der übergebenen Farbe zurück. Die Farbe muss im Format #rrggbb, z.B.: #CC0000 übergeben werden. 

Für den Parameter typ muss ein Charakter übergeben werde.

  • h
    Farbton(Hue aus dem HSB Farbraum)
    Mögliche Werte: 0.0 bis 360.0 (Der Farbton wird in Grad angegeben)
  • s
    Sättigung(Saturation aus dem HSB Farbraum)
    Mögliche Werte: 0.0(Graustufe) bis 1.0(volle Sättigung)
  • b
    Helligkeit(Brightness aus dem HSB Farbraum)
    0.0(Schwarz) bis 1.0(Weiß)

Kann eine Farbe nicht verarbeitet werden, wenn Sie im falschen Format ist, liefert die Funktion -1 als Rückgabewert.

// Hue
@Raw(Model.Utilities.ConvertColor("#C30709", 'h').ToString())
// 359,3617

// Saturation
@Raw(Model.Utilities.ConvertColor("#C30709", 's').ToString())
// 0,9306931

// Brightness
@Raw(Model.Utilities.ConvertColor("#C30709", 'b').ToString())
// 0,3960784

// Invalid color
@Raw(Model.Utilities.ConvertColor("#farbe", 'b').ToString())
// -1

Razor

Die Razor Template Engine erfordert validen HTML Code, bedeutet, jeder geöffnete Tag muss folgerichtig geschlossen werden. Um Dies zu umgehen kann mit der Funktion @Raw(string) HTML Code ausgegeben werden, der von der Validierung ausgeschlossen ist.

@Variablenname

Rückgabewert: string

Gibt den Wert der Variable aus, allerdings werden HTML Tags encodiert.

@{
  string VariableWithHtml = "Text";
}
<div>@VariableWithHtml</div>

<div>&lt;b&gt;Text&lt;/b&gt;</div>

@Raw​(string Variable)

Rückgabewert: string

Gibt den Wert der Variable aus, HTML Tags werden nicht encodiert.

@{
  string VariableWithHtml = "Text";
}
<div>@Raw(VariableWithHtml)</div>

<div><b>Text</b></div>

Helper

Helper können verwendet werden um Code wiederverwendbar zu machen.

Dies ist z.B.: für Buttons hilfreich.

Helper ähneln Funktionen sehr, es können individuelle Parameter übergeben werden und im Helper selbst darauf reagieren können.

@helper MyHelper(string link, string text = "") {
  if(!string.IsNullOrEmpty(link)) {
    if(text == "") {
      text = "Weiterlesen";
    }
    <a href="@Raw(link)" style="background:red;color:white;text-decoration:none;">@Raw(text)</a>
  }
}

@MyHelper("http://www.mailworx.info")
<a href="http://www.mailworx.info" style="background:red;color:white;text-decoration:none;">Weiterlesen</a>

@MyHelper("http://www.mailworx.info", "Mein <b>Lieblings</b> EMS System")
<a href="http://www.mailworx.info" style="background:red;color:white;text-decoration:none;">Mein <b>Lieblings</b> EMS System</a>