Я написал простой метод расширения для класса HtmlHelper, такой как
public static string GetExpressionNames<TModel>(this HtmlHelper<TModel> helper,params Expression<Func<TModel,object>>[] args) where TModel:class
{
string returnStr = string.Empty;
int i = 0;
foreach (var x in args)
{
returnStr += (++i).ToString() + ExpressionHelper.GetExpressionText(x) + "<br/>";
}
return returnStr;
}
В настоящее время он просто принимает массив LambdaExpressions, определенный в свойствах модели (возвращающий объект), и добавляет текст их выражения в строку, которая затемвозвращается этой функцией.Проблема в том, что для свойств строкового типа он работает нормально, но для свойств int он возвращает пустую строку в виде текста выражения.Причина в том, что для выражения, которое возвращает значения int, тело выражения выглядит следующим образом:
, но для строк это похоже на
Я думаю, что метод convert - это выражения, которые возвращают целочисленные значения, в результате чего пустая строка возвращается в виде текста выражения.Как я могу обойти эту проблему?Мне просто нужен оригинальный текст выражения, т.е. Id для Convert(x.id)
и Name для x.Name
;не имеет значения, как он обрабатывает его на заднем конце.