在MVC4中为DisplayFor使用EditorFor模板?

时间:2013-03-06 22:09:35

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我正在使用编辑器模板在我的viewModel视图中创建一个Html.EditorFor(属性)。有一个不同的.cshtml文件包含“@​​ Html.EditorFor(property)”。

现在,根据我的viewModel的属性值,我需要显示一个DisplayFor。

我试过在我的EditorTemplate中添加一些条件逻辑,但似乎无法从那里访问我的viewModel的属性(因为编辑器模板使用的是@ model.someOtherModel而不是@viewModel)。所以,如果我能说出像

这样的话
// Razor
if(true)
{ EditorFor(property) }
else {DisplayFor(property)}

在我的viewModel视图中,这样可行。我只是不知道如何为我的对象定义“显示模板”,就像我定义编辑器模板一样。

另一种解决方案可能是从编辑模板访问viewModel数据......这可能吗?

1 个答案:

答案 0 :(得分:1)

在Razor中,您应该使用以下语法:

@if (condition) {
   @Html.EditorFor(modelItem => model.property)
} else {
   @Html.DisplayFor(modelItem => model.property)
}

您是否收到了可以分享的特定错误?