我正在使用以下签名创建一个html帮助器方法:
public static MvcHtmlString MyHelperMethod<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression)
我知道我可以使用以下内容获取作为表达式传递的属性的值:
ModelMetadata metadata = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData);
object modelValue = metadata.Model;
在同一个模型中,我有另一个属性,我想在这个帮助器方法中检索它的值。我如何检索这个其他属性的值?
答案 0 :(得分:0)
你可以使用反射来做到这一点。
var property = typeof (TModel).GetProperty("yourProperty", BindingFlags.Instance | BindingFlags.Public);
var value = property.GetValue(helper.ViewData.Model, null);
常量“yourProperty”当然可以作为辅助方法的参数。
可能有更好的方法,但这个应该有效。