2017-03-17 52 views
1

我有一个asp.net MVC 5网站。脚手架DisplayFor而不是编辑器

当我支撑一个视图时,它总是在每个属性上生成EditorFor。

我可以使用哪些数据注释让它在某些字段上生成DisplayFor(因为它们只需要显示不被编辑)?

奇怪的是,我无法在Google上找到任何关于此的信息。

回答

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即可。您可以使用多个不同的编辑器模板,它们充当不同类型的只读模板。

+0

谢谢 - 所以他们有必要将此功能添加到DataAnnotations – niico