IEnumerable <t>集合的Html Helper </t>

时间:2011-05-16 23:11:48

标签: asp.net-mvc-3 html-helper


我有两个课程MyClassAMyClassB

public class MyClassA
{
    public int Age { get; set; }
    public string Name { get; set; }
}

public class MyClassB
{
    public IEnumerable<MyClassA> Data { get; set; }
}

现在,我想创建自定义强类型html帮助程序,以生成名称来自集合MyClassA的文本框,如下所示:

@model MyClassB

@Html.MyTextBoxFor(p => p.MapFrom(o => o.Age))
@Html.MyTextBoxFor(p => p.MapFrom(o => o.Name))

...输出:

<input type="text" name="Age" />
<input type="text" name="Name" />

我怎样才能做到这一点?


PS。我知道,我可以这样写:

@Html.TextBoxFor(p => p.Data.First().Name)

但感觉如此错误和不优雅...... 有任何想法吗?

1 个答案:

答案 0 :(得分:3)

让我确保我理解正确...您要为Name Age属性MyClassA创建DataMyClassB的文本框}}。如果是这样,那么编辑模板就可以了。

创建/Views/Shared/EditorTemplates/MyClassA.cshtml

@model MyClassA

@Html.TextBoxFor(m => m.Name)
@Html.TextBoxFor(m => m.Age)

然后在你看来:

@model MyClassB

@Html.EditorFor(m => m.Data)