I имеют расширение шаблонный методПолучить ссылку на объект из C# выражения
public static void AddError<TModel>(
this ModelStateDictionary modelState,
Expression<Func<TModel, object>> expression,
string resourceKey,
string defaultValue)
{
// How can I get a reference to TModel object from expression here?
}
Мне нужно, чтобы получить ссылку на объект TModel из выражения. Этот метод вызывается следующим кодом:
ModelState.AddError<AccountLogOnModel>(
x => x.Login, "resourceKey", "defaultValue")
Там нет такого объекта в выражении - 'x' является параметром выражения, вы должны передать в него объект типа. (Или я понимаю, чего вы хотите достичь неправильно.) – millimoose
Спасибо за ваш ответ, Inerdial) –
Вы действительно хотите, чтобы объект или текст 'Login' использовался для метода' AddModelError (key, errorMessage) '? Используйте 'ExpressionHelper.GetExpressionText' (встроенный в MVC), чтобы получить имя свойства из выражения лямбда. – kamranicus