ASP.NET MVC:如何使用多个EditorTemplate?

ASP.NET MVC:如何使用多个EditorTemplate?,asp.net,asp.net-mvc,asp.net-mvc-4,Asp.net,Asp.net Mvc,Asp.net Mvc 4,我按照本教程添加和删除多个文本框:。我想知道如何使用“EditorFor”的多个模板 在我的化学模型中: public partial class NPG_Chemical { public NPG_Chemical() { this.NPG_Chemical_Measurement_Methods = new HashSet<NPG_Chemical_Measurement_Method>(); } public virtual I

我按照本教程添加和删除多个文本框:。我想知道如何使用“EditorFor”的多个模板

在我的化学模型中:

public partial class NPG_Chemical
{

    public NPG_Chemical()
    {
        this.NPG_Chemical_Measurement_Methods = new HashSet<NPG_Chemical_Measurement_Method>();
    }
    public virtual ICollection<NPG_Chemical_Measurement_Method> NPG_Chemical_Measurement_Methods { get; set; }
    internal void CreateMeasurementMethods(int count = 1)
    {
        for (int i = 0; i < count; i++)
        {
            NPG_Chemical_Measurement_Methods.Add(new NPG_Chemical_Measurement_Method());
        }
    }
在my Create.cshtml中:

<div id="type1s">
<label>
    Type1:
</label>
@Html.EditorFor(model => model.NPG_Chemical_Measurement_Methods)
</div>
<div id="type2s">
<label>
    Type2:
</label>
@Html.EditorFor(model => model.NPG_Chemical_Measurement_Methods)
</div>

类型1:
@EditorFor(model=>model.NPG\u Chemical\u Measurement\u Methods)
类型2:
@EditorFor(model=>model.NPG\u Chemical\u Measurement\u Methods)
我有一个模板:NPG_Chemical_Measurement_Method.cshtml

@model NPG_Administrative_Utility.Models.NPG_Chemical_Measurement_Method
<div class="type1" style="display:inline-block;">
<p>type1
    @Html.Hidden("Measurement_Type", "Type1")
    @Html.TextBoxFor(x => x.Measurement_Method)
</p>
</div>
@model NPG\u行政管理实用新型NPG\u化学测量方法
类型1
@隐藏(“测量类型”、“类型1”)
@TextBoxFor(x=>x.Measurement\u方法)

问题是如何使用另一个模板,该模板包含类型2 EditorFor的以下代码:

@model NPG_Administrative_Utility.Models.NPG_Chemical_Measurement_Method
<div class="type2" style="display:inline-block;">
<p>type2
    @Html.Hidden("Measurement_Type", "Type2")
    @Html.TextBoxFor(x => x.Measurement_Method)
</p>
</div>
@model NPG\u行政管理实用新型NPG\u化学测量方法
类型2
@隐藏(“测量类型”、“类型2”)
@TextBoxFor(x=>x.Measurement\u方法)


现在这两个EditorFor都将使用第一个模板。

我相信您需要的是局部视图

不能使用
EditorTemplate
向集合动态添加新项。参考答案,了解一些信息options@StephenMuecke我可以使用EditorTemplate根据第一个模板添加新项。唯一的问题是如何将第二个编辑器用于第二个编辑器for。不可能使用
EditorTemplate
动态添加新项目,我不明白您为什么认为可以。您的
Create.cshtml
视图正在生成两个相同的模板,这些模板具有相同的
name
属性,无法绑定到集合。@StephenMuecke在感谢中检查“HtmlHelpers”,但我不需要查看错误代码:)
@model NPG_Administrative_Utility.Models.NPG_Chemical_Measurement_Method
<div class="type2" style="display:inline-block;">
<p>type2
    @Html.Hidden("Measurement_Type", "Type2")
    @Html.TextBoxFor(x => x.Measurement_Method)
</p>
</div>