I have this extension method:
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;
}
It works very well for “one level” like this:
proj => proj.MyProperty
So it return a value for the MyProperty located under the model.
But it doesn’t work for “multi level” like this:
proj => proj.Level1.MyProperty
Here, trying to return a value for the MyProperty located under the model but we loose level1!
I don’t know if i’m clear?
Thanks.
You could use ModelMetadata.FromLambdaExpression method and inspect result’s
Modelproperty