我有一个asp.net MVC5站点。
当我搭建一个视图时,它总是在每个属性上生成EditorFor。
我可以使用什么数据注释在某些字段上生成DisplayFor (因为它们只需要显示,而不是编辑)?
奇怪的是,我在谷歌上找不到这方面的任何东西。
发布于 2017-03-17 20:02:52
您可以使用UIHintAttribute应用一些小技巧。
首先,在Views\Shared\EditorTemplates文件夹中创建一个名为DisplayOnly.cshtml的新EditorTemplate,唯一的内容是下面这行
@Html.DisplayForModel()然后,使用UIHintAttribute标记从未编辑过但显示过的属性
public class MyViewModel
{
[UIHint("DisplayOnly")]
public string OnylyDisplayed { get; set; }
public string Editable { get; set; }
} 即使EditoFor(...)是脚手架的,模板引擎会将您路由到显示模板。
编辑
我确信这将以这种方式工作,但我已经发布了第一次让它工作;有趣的是,模板中类似于@Html.LabelForModel()的东西可以工作。也许我漏掉了什么。如果您需要一个简单的输出,那么只需在模板中包含@Model即可。对于不同的类型,您可以使用多个不同的编辑器模板作为只读。
https://stackoverflow.com/questions/42856632
复制相似问题