我有一个asp.net MVC 5网站。
当我构建一个视图时,它总是在每个属性上生成EditorFor。
我可以使用哪些数据注释来在某些字段上生成DisplayFor(因为它们只需要显示而不是编辑)?
奇怪的是,我在谷歌上找不到任何关于此的内容。
答案 0 :(得分:0)
你可以使用UIHintAttribute
来应用一个小技巧。
首先,在Views\Shared\EditorTemplates
文件夹中创建一个新的 EditorTemplate ,名称为DisplayOnly.cshtml
,唯一的内容是该行
@Html.DisplayForModel()
然后,使用UIHintAttribute
:
public class MyViewModel
{
[UIHint("DisplayOnly")]
public string OnylyDisplayed { get; set; }
public string Editable { get; set; }
}
即使EditoFor(...)
是脚手架,模板引擎也会将您引导至显示模板。
修改强>
我确信这会以这种方式工作,但我已经发布了第一次工作;有趣的是,模板中的@Html.LabelForModel()
之类的工作原理。也许我错过了什么。如果您需要一个简单的输出,那么在模板中只有@Model
就可以了。对于不同类型,您可以使用多个不同的编辑器模板作为只读。