【发布时间】:2013-01-29 02:15:20
【问题描述】:
我在~/Views/Shared/DisplayTemplates 中创建了一个名为ImpactMatrix.cshtml 的显示模板。它接受一个可为空的 int 并呈现一个二维矩阵,并突出显示选定的数字:
@model int?
@{
var matrix = ImpactMatrix.GetMatrix();
}
<div class="impactmatrix">
<table>
@for (int i = 0; i < matrix.GetLength(0); i++)
{
<tr>
@for (int j = 0; j < matrix.GetLength(1); j++)
{
var cell = matrix[i, j];
<td data-color="@cell.Color"
class="matrix @(Model == cell.Value ? cell.Color.ToString() : "")">
@cell.Value
</td>
}
</tr>
}
</table>
</div>
它很容易重复使用并且效果很好。我可以像这样在我的视图中调用它:
@Html.DisplayFor(m=> m.ImpactFactor, "ImpactMatrix")
现在我决定扩展它并使其成为编辑器。这个想法是为选定的数字添加一个隐藏的输入,并将输入与矩阵模板一起用一个 div 包装起来。从那里使用 Javascript 与我的显示网格交互并填充隐藏的输入应该是一件简单的事情。
我在~/Views/Shared/EditorTemplates 文件夹中创建了一个编辑器模板,也称为ImpactMatrix.cshtml。代码如下:
@model int?
<div class="impactmatrix-editor">
@Html.HiddenFor(m => m)
@Html.DisplayFor(m => m, "ImpactMatrix")
</div>
我的问题是隐藏输入正确呈现,但嵌套显示模板未在我的编辑器模板中呈现。我正在尝试做的事情可能吗?
【问题讨论】:
标签: c# asp.net-mvc asp.net-mvc-3