2010-11-12 4 views
0

J'ai une aide html, si je l'appelle comme ceci:ne peut pas obtenir la valeur d'une autre propriété lorsque vous appelez aide par Html.EditorFor

Html.MyHelper("Prop1") 

je peux obtenir les données d'une autre propriété comme celui-ci:

public static MvcHtmlString MyHelper(
      this HtmlHelper html, 
      string prop){ 
    var p = TypeDescriptor.GetProperties(html.ViewData.Model).Find("Prop2", false); 
    if (p != null) value = p.GetValue(html.ViewData.Model); 
} 

mais si appeler comme ceci:

Html.EditorFor(x => x.Prop1); 

le modèle contient ceci:

<%= Html.MyHelper(ViewData.TemplateInfo.GetFullHtmlFieldName(""), ViewData.TemplateInfo.FormattedModelValue) %> 

que je ne peux pas obtenir la valeur de Prop2, quelqu'un sait comment l'obtenir?

Répondre

1

Vous pouvez passer l'objet de modèle ou de créer un nouvel objet modèle pour passer

Html.EditorFor(x => x, "Prop1"); 

Html.EditorFor(x => new Prop1Model { X = Model.Prop1, Y = Model.Prop2 }, "Prop1"); 
Questions connexes