Asp.net mvc can';通过Html.EditorFor调用帮助程序时,无法获取另一个属性的值

Asp.net mvc can';通过Html.EditorFor调用帮助程序时,无法获取另一个属性的值,asp.net-mvc,asp.net-mvc-2,Asp.net Mvc,Asp.net Mvc 2,我有一个html助手, 如果我这样称呼它: Html.MyHelper("Prop1") public static MvcHtmlString MyHelper( this HtmlHelper html, string prop){ var p = TypeDescriptor.GetProperties(html.ViewData.Model).Find("Prop2", false); if (p != null) va

我有一个html助手, 如果我这样称呼它:

Html.MyHelper("Prop1")
 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);
}
Html.EditorFor(x => x.Prop1);
我可以获得另一个属性的数据,如下所示:

Html.MyHelper("Prop1")
 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);
}
Html.EditorFor(x => x.Prop1);
但如果你这样称呼它:

Html.MyHelper("Prop1")
 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);
}
Html.EditorFor(x => x.Prop1);
该模板包含以下内容:

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


因此,我无法获得Prop2的值,有人知道如何获得它吗?

您可以传递模型对象或创建一个新的模型对象以传入

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

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