我有什么似乎(我反正)是一个奇怪的问题......问题的MVC EditorFor命名模板
我创建了一个SelectListItem一个简单的编辑模板(SelectListItem.cshtml在〜/查看/共享/ EditorTemplates文件夹),例如:
<ul class="select-list-item cell-15 col-3 omega clearfix">
@Html.EditorFor(c => c.Categories)
</ul>
凡c.Categories是一个IEnumerable
这工作得很好,但我想另外一个模板来呈现略有不同的标记集,所以我复制并改名编辑器模板,例如,'CategoryIcons.cshtm “并援引如下:
<ul class="select-list-item cell-15 col-3 omega clearfix">
@Html.EditorFor(c => c.Categories, "CategoryIcons")
</ul>
总之,唯一的区别是我指定了一个名为编辑模板。
当我打开网页,我现在得到以下错误:
The model item passed into the dictionary is of type 'System.Collections.Generic.List`1[System.Web.Mvc.SelectListItem]', but this dictionary requires a model item of type 'System.Web.Mvc.SelectListItem'
模板的模型声明,在这两个模板ID:
@model System.Web.Mvc.SelectListItem
我不明白为什么默认模板作品和指定的模板不会。任何帮助,将不胜感激。
谢谢。
我写的是完全相同的响应,我将补充的唯一的另一件事是您可以用任何其他名称的类包装'SelectListItem'并使用它来获取不同的模板,但无论在哪种情况下,这可能对于希望添加到MVCContrib中的人来说,这是一个好地方。 – 2011-04-28 12:24:14
感谢您的解释和建议。我通过从SelectListItem继承创建了一个新类,然后为该类创建了一个新模板 - 它完美地工作,但似乎是不必要的开销。 – Neilski 2011-04-28 17:55:28