我想在mvc 4中创建动态控件生成器,使用像TextBoxFor()这样的扩展方法在代码中创建控件,但是可以使用我的属性的类型传递菱形语法来创建表达式。 这是我创建表达式的函数。
private static Expression<Func<IViewModel, TProperty>> createExpression<TProperty>(string propertyName)
{
ParameterExpression parameter = Expression.Parameter(myModel.GetType(), "item");
Expression<Func<IViewModel, TProperty>> lambda;
lambda = Expression.Lambda<Func<IViewModel, TProperty>>(Expression.PropertyOrField(parameter, propertyName), parameter);
return lambda;
}
我的电话
InputExtensions.TextBoxFor(myhelper,createExpression<property.PropertyType>(property.Name);
在菱形语法中我有一个错误,只是我想传递一种属性。
答案 0 :(得分:0)
泛型类中的任何类型引用都需要在编译时定义。
但是在您的示例中,第二种类型TProperty
未定义,但可以包含任何类型,具体取决于property.PropertyType
的值