Я большой нуб в порядке, поэтому, пожалуйста, голые со мной ...Получить свойство по имени динамического ключа?
В принципе, я пытаюсь избежать дублирования некоторых шаблонов, скажем, у меня есть следующий (очень упрощенно) шаблон:
<div class="same-template">
@(button?.buttonLeft.Url)
</div>
<div class="same-template">
@(button?.buttonRight.Url)
</div>
У меня также есть кнопка Правый шаблон, так что мой вопрос в том, есть ли способ, которым я могу пройти в «Стороне» кнопки и получить доступ к свойству? Я знаю, что в javascript я бы сделал что-то вроде:
@(button?.button"+side+".Url)
, но, очевидно, мы не используем javascript.
Я попытался создать вспомогательную функцию
@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")
Я надеюсь, что это было достаточно ясно!
EDIT: Ive сделал следующую функцию, однако на некоторых он не на var b
линии со следующей ошибкой:
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;
}
}
Итак, вы хотите представить значение свойства кнопки на странице? И вы хотите получить доступ к этому свойству с помощью имени строки? – kat1330
Способ, которым вы хотите получить доступ к свойству, не поддерживается. Что вы можете сделать, это проверить значение 'side' в условии if и использовать соответствующее свойство кнопки на основе значения. –