【发布时间】:2012-07-31 05:07:27
【问题描述】:
我有一个扩展泛型方法
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是表达式的参数,您应该将类型的对象传递给它。 (或者我理解你想要实现的目标是错误的。) -
感谢您的回复,Inerdial )
-
您真的希望对象或文本
Login用于AddModelError(key, errorMessage)方法吗?使用ExpressionHelper.GetExpressionText(MVC 内置)从 lambda 表达式中获取属性名称。 -
@subkamran 你的意思可能是
lambda expression... -
我需要 TModel 对象的引用)我不想传递另一个参数来引用对象)
标签: c# asp.net-mvc expression