相关疑难解决方法(0)

如何在迭代器中使用Html.DisplayFor?

我很喜欢 MVC 2.整个过程非常适合网络.

然而,有一项功能,我无法哄骗这个Html.DisplayFor()功能:

<@ Page Inherits="ViewPage<IEnumerable<Foo>>">

<% foreach(var item in Model) { %>

    <%: Html.DisplayFor(item.BarBaz) %>

<% } %>
Run Code Online (Sandbox Code Playgroud)

我需要能够使用DisplayTemplate来获取此值.有没有办法做到这一点?

c# asp.net-mvc-2

36
推荐指数
3
解决办法
2万
查看次数

MVC EditorFor问题命名模板

我有什么看起来(对我来说)是一个奇怪的问题......

我为SelectListItem创建了一个简单的编辑器模板(〜/ Views/Shared/EditorTemplates文件夹中的SelectListItem.cshtml),例如:

<ul class="select-list-item cell-15 col-3 omega clearfix">
    @Html.EditorFor(c => c.Categories)
</ul>
Run Code Online (Sandbox Code Playgroud)

其中c.Categories是IEnumerable

这工作正常,但我想要另一个模板来呈现具有略微不同标记的集合,因此我将编辑器模板复制并重命名为,例如,"CategoryIcons.cshtm"并调用如下:

<ul class="select-list-item cell-15 col-3 omega clearfix">
    @Html.EditorFor(c => c.Categories, "CategoryIcons")
</ul>
Run Code Online (Sandbox Code Playgroud)

简而言之,唯一的区别是我正在指定一个命名的编辑器模板.

当我打开页面时,我现在收到以下错误:

传递到字典中的模型项的类型为'System.Collections.Generic.List`1 [System.Web.Mvc.SelectListItem]',但此字典需要类型为'System.Web.Mvc.SelectListItem'的模型项

两个模板ID中的模板模型声明:

@model System.Web.Mvc.SelectListItem
Run Code Online (Sandbox Code Playgroud)

我不明白为什么默认模板工作而命名模板不工作.任何帮助,将不胜感激.

谢谢.

editortemplates razor asp.net-mvc-3

21
推荐指数
2
解决办法
1万
查看次数