首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用DisplayFor代替EditorFor

问用DisplayFor代替EditorFor
EN

Stack Overflow用户
提问于 2017-03-17 19:41:16
回答 1查看 50关注 0票数 1

我有一个asp.net MVC5站点。

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

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

奇怪的是,我在谷歌上找不到这方面的任何东西。

EN

回答 1

Stack Overflow用户

发布于 2017-03-17 20:02:52

您可以使用UIHintAttribute应用一些小技巧。

首先,在Views\Shared\EditorTemplates文件夹中创建一个名为DisplayOnly.cshtml的新EditorTemplate,唯一的内容是下面这行

代码语言:javascript
复制
@Html.DisplayForModel()

然后,使用UIHintAttribute标记从未编辑过但显示过的属性

代码语言:javascript
复制
public class MyViewModel
{
    [UIHint("DisplayOnly")]
    public string OnylyDisplayed { get; set; }

    public string Editable { get; set; }
} 

即使EditoFor(...)是脚手架的,模板引擎会将您路由到显示模板。

编辑

我确信这将以这种方式工作,但我已经发布了第一次让它工作;有趣的是,模板中类似于@Html.LabelForModel()的东西可以工作。也许我漏掉了什么。如果您需要一个简单的输出,那么只需在模板中包含@Model即可。对于不同的类型,您可以使用多个不同的编辑器模板作为只读。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42856632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档