c# - 从 DisplayTemplates 调用 EditorTemplates
问题描述
我在使用 DisplayTemplate 调用 EditorTemplate 时遇到问题。这样做的原因是我希望我的 DisplayTemplate 与 EditorTemplate 相同,但禁用所有字段。这可以防止在需要更改时更新两个视图。当直接从非 DisplayTemplate 视图调用时,EditorTemplate 会正确呈现。
编辑器模板:
@model MyNamespace.ViewModel
@Html.TextBoxFor(m => m.Property1)
显示模板:
@model MyNamespace.ViewModel
<fieldset disabled="disabled">
@Html.EditorFor(m => m)
</fieldset>
DisplayEditor 呈现fieldset
标记,但内部没有任何内容。我已经验证传入的模型是否填充了数据。EditorTemplate 内的断点未命中。
我也试过打电话@Html.EditorFor(m => m, "~/FullyQualifiedPath/EditorTemplates/ViewModel.cshtml)
没有任何运气。令人惊讶的是,如果我使用@Html.Partial("~/FullyQualifiedPath/EditorTemplates/ViewModel.cshtml")
EditorTemplate 将按预期呈现。
虽然我在技术上已经解决了这个问题,但使用 Partial 手动调用模板似乎不太正确。
解决方案
推荐阅读
- javascript - 未定义不是对象(评估“res.data”)。这是什么?
- python - 使用python静默捕获网络摄像头快照
- flow-project - TestEnv 类的作用究竟是什么?
- javascript - nodejs/express/Mongoose js中.find()中的时间戳格式问题
- sql - 与后端同时更改 sql 表/在 prod 中迁移的最佳策略
- python - python的环境变量保存在哪里
- javascript - 带双括号的 return 语句如何工作?
- visual-studio - 如何将 UWP 应用程序编译为独立的 EXE 文件?
- html - 网站图标不出现
- c++ - 当我从基本数组类型切换到自定义类型时,嵌套的 initializer_list 初始化失败