我正在使用编辑器模板在我的viewModel视图中创建一个Html.EditorFor(属性)。有一个不同的.cshtml文件包含“@ Html.EditorFor(property)”。
现在,根据我的viewModel的属性值,我需要显示一个DisplayFor。
我试过在我的EditorTemplate中添加一些条件逻辑,但似乎无法从那里访问我的viewModel的属性(因为编辑器模板使用的是@ model.someOtherModel而不是@viewModel)。所以,如果我能说出像
这样的话// Razor
if(true)
{ EditorFor(property) }
else {DisplayFor(property)}
在我的viewModel视图中,这样可行。我只是不知道如何为我的对象定义“显示模板”,就像我定义编辑器模板一样。
另一种解决方案可能是从编辑模板访问viewModel数据......这可能吗?
答案 0 :(得分:1)
在Razor中,您应该使用以下语法:
@if (condition) {
@Html.EditorFor(modelItem => model.property)
} else {
@Html.DisplayFor(modelItem => model.property)
}
您是否收到了可以分享的特定错误?