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

时间:2010-11-12 15:49:24

标签: 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) value = p.GetValue(html.ViewData.Model);
}

但如果这样称呼:

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

模板包含:

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

比我无法获得Prop2的值,任何人都知道如何获得它?

1 个答案:

答案 0 :(得分:1)

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

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

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