Das ist ein Beispieltext der Verlinkt ist und zwar auf mailworx

mailworx Razor Syntax

Die Syntax von mailworx Razor Vorlagen

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 Bearbeitungsmodus (Kampagneneditor) befindet. Um das Layout an den Editor anzupassen.
Empfohlen ist hier ein Tabellenkonstrukt, um den Newsletter zu erzeugen und 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) {
  ...
}

Model.​IsForwardedMail

Rückgabewert: bool

Diese Eigenschaft liefert True, wenn die Kampagne weitergeleitet wurde.

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

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.

Model.​Campaign.​ShowForward

Rückgabewert: bool

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

Model.​Campaign.​ShowUnsubscribe

Rückgabewert: bool

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

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.ShowUnsubscribe) {
        <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
  • alt

...
<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.

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
  • alt

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

Rückgabewert: string

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

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.

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

Rückgabewert: string

Definiert einen Bereich in dem die Abschnitte eingefügt werden. Werden in der Vorlage keine Bereiche benötigt, muss der areaName leer gesetzt werden.
Werden mehrere Bereiche verwendet, dürfen sich diese nicht im selben Eltern-Element enthalten sein, da ansonsten das Einfügen und Sortieren der Abschnitte nicht korrekt funktioniert.

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 dient, kann der Feldwert im Kampagnen Editor 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 zweiter 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>@Raw(Model.Editor.GetEditor("template_field_for_article_image", sec))</td>
         </tr>
         <tr>
           <td>@Raw(Model.Editor.GetEditor("template_field_for_article_headline", sec))</td>
         </tr>
         <tr>
           <td>@Raw(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, so 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.

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 sowie schließende Tags prüft und nicht kompilieren kann, wenn die Anzahl der öffnenden und schließenden tags nicht übereinstimmt.

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 protokollieren.

    ...
    @Raw(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"))

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

Rückgabewert: string

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

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

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

Rückgabewert: string

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

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

Model.​Template.​GetChangeProfileURL​()

Rückgabewert: string

Gibt den "Daten ändern"-Link zurück. Dieser muss händisch in einen 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 einen a-Tag als href-Attribut angegeben werden.

@Raw(Model.Template.GetUnsubscribeURL())

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 (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, da 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 einen validen HTML Code. Das 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 = "<b>Text</b>";
}
<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 = "<b>Text</b>";
}
<div>@Raw(VariableWithHtml)</div>

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

Helper

Helper können verwendet werden, um Code wiederverwendbar zu machen. Dies ist zum Beispiel für Buttons hilfreich.

Helper ähneln Funktionen sehr. Es können individuelle Parameter übergeben und im Helper selbst darauf reagiert werden.

@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>