.net MVC - 集合中同一模型的两个编辑器模板

时间:2017-11-15 14:48:14

标签: c# asp.net-mvc templates editor

.net MVC c#应用程序使用Entity框架。 我有一个模型(Invoices.cs),其中包含属性(invoice_lines),它是另一个模型(invoiceLines.cs)的集合。

我在Views / Shared文件夹中也有一个名为InvoiceLines.cshtml的编辑器模板。编辑器模板包含一个InvoiceLine对象的字段。

然后在编辑视图中,我有

@Html.EditorFor(m=>m.invoice_lines);

这是正常的,如果主模型包含n invoice_lines,它会为每个模型重复编辑器模板。 (我没有在任何地方包括任何foreach或类似的东西,似乎mvc足够聪明,为我这样做)

现在,我需要为发票行模型创建一个aditional编辑器模板,该模板仅显示要在另一个视图中使用的某些字段。所以在阅读Can I use more than one editor template for the same class in MVC3?之后,我在Views / Shared中创建了额外的编辑器模板(基本上是第一个的复制粘贴,只是剥离了一个字段),称之为InvoiceLineTwo.cshtml,并将其包含在像这样的发票模型的视图

@Html.EditorFor(m=>m.invoice_lines, "InvoiceLineTwo")

但这不起作用:

The model item passed into the dictionary is of type 'System.Collections.Generic.HashSet`1[MyProyect.Models.InvoiceLines]', but this dictionary requires a model item of type 'MyProyect.Models.InvoiceLines'.

搜索此错误,似乎期待一个InvoiceLines,我给它一个集合。但为什么使用"默认"这个编辑器模板有效,但不是额外的吗?我该如何解决呢?

0 个答案:

没有答案