.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,我给它一个集合。但为什么使用"默认"这个编辑器模板有效,但不是额外的吗?我该如何解决呢?