Ich bin ein großer Noob in Ordnung, so entblößen bitte mit mir ...Holen Sie die Eigenschaft nach dynamischem Schlüsselnamen?
Grundsätzlich bin ich ein paar Vorlagen kopieren, lassen Sie uns sagen, dass ich die folgende (sehr vereinfacht) Vorlage haben zu vermeiden versuchen:
<div class="same-template">
@(button?.buttonLeft.Url)
</div>
<div class="same-template">
@(button?.buttonRight.Url)
</div>
Ich habe auch eine Schaltfläche Right Vorlage auch, also meine Frage ist, gibt es eine Möglichkeit, ich kann in der "Seite" der Schaltfläche übergeben, und Zugriff auf die Eigenschaft? Ich weiß in Javascript würde ich etwas tun wie:
@(button?.button"+side+".Url)
aber offensichtlich sind wir nicht mit Javascript.
Ich habe versucht, eine Hilfsfunktion
@helper GetFooter(Object button, String side) {
<div class="same-template">
<!-- don't know what to do here... -->
@(button?.button<side>.Url)
</div>
}
@GetFooter(button, "Right")
Ich hoffe, das war klar genug zu schaffen!
EDIT: Ive hat die folgende Funktion jedoch auf einige scheitert es an der var b
Linie mit dem folgenden Fehler:
Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
@functions{
public dynamic GetNestedDynamicValue(IContentCardItem cardItem, String first, String second) {
var b = cardItem?.GetType().GetProperty(first).GetValue(cardItem, null);
var c = b?.GetType().GetProperty(second).GetValue(b, null);
return c;
}
}
Also, Sie möchten Wert der Schaltfläche Eigenschaft in Seite präsentieren? Und Sie möchten auf diese Eigenschaft nach Zeichenfolgenname zugreifen? – kat1330
Die Art, auf die Sie auf die Eigenschaft zugreifen möchten, wird nicht unterstützt. Sie können den Wert von "Seite" in der if-Klausel überprüfen und die entsprechende Eigenschaft der Schaltfläche basierend auf dem Wert verwenden. –