- У меня есть класс модели, который имеет описания на разных языках, например Description_en, Description_sp, Description_fr.
- Когда пользователь выбирает текущий язык, у меня есть «культура» cookie с этим значением.
Мой код:
В ModelClass у меня есть отражение (видел здесь: Как вызвать свойство объекта с переменной в C#, например, customer.&fieldName):
Код: Выделить всё
public class Something
{
public string Description_en { get; set; }
public string Description_sp { get; set; }
public string Description_fr { get; set; }
//Reflection, makes it possible to select a property to call with a variable
public string GetPropertyValue(string fieldName)
{
PropertyInfo prop = typeof(Something).GetProperty(fieldName);
return prop.GetValue(this, null).ToString();
}
}
Код: Выделить всё
@model IEnumerable
@Html.DisplayNameFor(model => model.GetPropertyValue("Description_" + @culture))
Шаблоны можно использовать только с доступом к полям, доступом к свойствам, индексом одномерного массива или выражениями пользовательского индексатора с одним параметром.
Мой вопрос: есть ли способ сделать это?
P.S. Очевидная (и правильная) возможность...
Код: Выделить всё
if(@culture == "en"){@Html.DisplayNameFor(model => model.Description_en") }
Спасибо за возможную помощь