Как получить значение этого выражения model => model.Name? - PullRequest
2 голосов
/ 16 июля 2011

Я пытаюсь получить значение выражения ниже, компилируя и вызывая, но я получаю некоторые ошибки и безуспешно до сих пор.

public static void TextEditorFor<TModel, TProperty>(this System.Web.Mvc.HtmlHelper<TModel> html, Expression<Func<TModel, TProperty>> expression)
{
    var value = expression.Compile().Invoke(html.ViewData.Model);//problem that is value is null

}

Ответы [ 2 ]

2 голосов
/ 16 июля 2011

(относится к оригиналу вопроса)

Учитывая подпись, вам просто нужно:

return Convert.ToString(
    expression.Compile().Invoke(modelInstance)
);

Вы также можете сделать это путем проверки выражения, если это абсолютно необходимо.

0 голосов
/ 16 июля 2011

Использовать ModelMetadata.FromLambdaExpression, метод , а затем его свойство Model

...