1
我有一个asp.net MVC 5网站。脚手架DisplayFor而不是编辑器
当我支撑一个视图时,它总是在每个属性上生成EditorFor。
我可以使用哪些数据注释让它在某些字段上生成DisplayFor(因为它们只需要显示不被编辑)?
奇怪的是,我无法在Google上找到任何关于此的信息。
我有一个asp.net MVC 5网站。脚手架DisplayFor而不是编辑器
当我支撑一个视图时,它总是在每个属性上生成EditorFor。
我可以使用哪些数据注释让它在某些字段上生成DisplayFor(因为它们只需要显示不被编辑)?
奇怪的是,我无法在Google上找到任何关于此的信息。
您可以使用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
即可。您可以使用多个不同的编辑器模板,它们充当不同类型的只读模板。
谢谢 - 所以他们有必要将此功能添加到DataAnnotations – niico