-1

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

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

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

// Razor
if(true)
{ EditorFor(property) }
else {DisplayFor(property)}

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

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

4

1 回答 1

1

在 Razor 中,您应该使用类似于以下语法的内容:

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

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

于 2013-03-06T22:12:11.007 回答