2017-01-18 1 views
0

Ich habe ein generisches HTML-Element wie dieseDer beste Weg Element benutzerdefinierte Eigenschaften in C# Webform

<span v-bind:class="{ available: days.timeOne }" data-time="10:00" data-date="{{ days.date }}" class="home__visit-featured-days-item-buttons-time">10:00</span> 

Welche zu geben, wenn es gemacht wird, die vuejs-Tags wird mit abgestreift.

Ich habe dieses Problem zuvor bei der Verwendung von grundlegenden HTML-Elementen und sogar Kontrolle Tags wie und meine Lösung war es, sie manuell in den Code hinter hinzuzufügen. Ich mag diese Methode nicht, da sie nicht nur lang und langwierig ist, sondern auch die Endlogik mit der Sicht verbindet.

Gibt es ein Attribut wie ClientIDMode, das ich verwenden kann, um zu verhindern, dass diese Tags entfernt werden?

+0

Ich habe es einfach schnell in Kentico 10 versucht und es funktioniert gut (Attribute werden gerendert). Auch wenn der Ausgabefilter aktiviert ist. Welche Kentico-Version verwendest du? – rocky

Antwort

0

Ich nehme an, dass Sie den CK-Editor für die Eingabe des HTML-Codes verwenden. Ich würde das nicht empfehlen, da es WYSIWYG und kein Code-Editor ist und Dinge wie das Entfernen eines Teils der Quelle tut. Wenn Sie können, verschieben Sie Ihren Code bitte direkt in das statische Webpart oder in das Layout. Wenn Sie es in dem bearbeitbaren Bereich Bereich haben, dann können Sie geschützte Quelle für das CK-Editor angeben zu lassen, wissen sie, welcher Code nicht zu berühren:

https://www.google.com/search?q=ckeditor%20protectedsource&rct=j

+0

Nein, das ist direkt in die ASCX-Datei eines WebControl – OnIIcE

+0

Oh, wie in dieser Datei \ CMS \ CMSModules \ ApplicationDashboard \ ApplicationDashboard.aspx? – JanH

2

ASP.NET Webforms wird Attribute für Server-Streifen aus Steuerelemente (solche mit runat="server"), wenn Attribute Doppelpunkte (:) enthalten, da diese Attribute nicht in Klasseneigenschaften im Backend umgesetzt werden können. Nicht-Server-Steuerelemente (z. B. Raw-Markup) sollten jedoch nur so wiedergegeben werden, wie sie in die ASCX-Datei geschrieben wurden.

Ihr Beispiel hat kein runat="server" Attribut, also würde ich erwarten, dass es wie geschrieben rendert. Wenn es sich jedoch um ein Serversteuerelement handelt, können Sie stattdessen einfach Roh-Markup verwenden?

Wenn es ein Server-Steuerelement sein muss, denke ich, ist Ihre einzige Option, Ihr Attribut in den Code hinter hinzuzufügen, wie Sie z. myControl.Attributes.Add("v-bind:class", "{ available: days.timeOne }");

Verwandte Themen