2012-01-15 19 views
1

我有这样的扩展方法:试图获得值在多层次模型/物业协会

public static string GetValueFor<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression) 
{ 
    MemberExpression body = (MemberExpression)expression.Body; 
    string propertyName = body.Member.Name; 
    TModel model = helper.ViewData.Model; 
    string value = typeof(TModel).GetProperty(propertyName).GetValue(model, null).ToString(); 
    return value; 
} 

这都非常好,像这样的“一平”:

凸出=>凸出。 MyProperty

因此,它返回位于模型下的MyProperty的值。

但它不为“多层次”像这样的工作:

凸出=> proj.Level1.MyProperty

这里,试图对位于模式下myProperty的返回值但我们失去了level1!

我不知道我是否清楚?

谢谢。

回答