Asp.net mvc Scaffold DisplayFor而不是EditorFor
我有一个asp.NETMVC5网站 当我构建视图时,它总是在每个属性上生成EditorFor 我可以使用什么数据注释使其在某些字段上生成DisplayFor(因为它们只需要显示而不需要编辑)Asp.net mvc Scaffold DisplayFor而不是EditorFor,asp.net-mvc,asp.net-mvc-5,Asp.net Mvc,Asp.net Mvc 5,我有一个asp.NETMVC5网站 当我构建视图时,它总是在每个属性上生成EditorFor 我可以使用什么数据注释使其在某些字段上生成DisplayFor(因为它们只需要显示而不需要编辑) 奇怪的是,我在谷歌上找不到这方面的任何信息。你可以使用 首先,在Views\Shared\EditorTemplates文件夹中创建一个新的EditorTemplate,名称为DisplayOnly.cshtml,唯一的内容是行 @Html.DisplayForModel() 然后,用uihintatAt
奇怪的是,我在谷歌上找不到这方面的任何信息。你可以使用 首先,在
Views\Shared\EditorTemplates
文件夹中创建一个新的EditorTemplate,名称为DisplayOnly.cshtml
,唯一的内容是行
@Html.DisplayForModel()
然后,用uihintatAttribute
标记从未编辑但显示的属性:
public class MyViewModel
{
[UIHint("DisplayOnly")]
public string OnylyDisplayed { get; set; }
public string Editable { get; set; }
}
即使构建了EditoFor(…)
,模板引擎也会将您路由到显示模板
编辑
我确信这会以这种方式工作,但我第一次发布了让它工作的命令;有趣的是,模板中类似于
@Html.LabelForModel()
的东西可以工作。也许我错过了什么。如果您需要一个简单的输出,那么只需在模板中添加@Model
。对于不同的类型,您可以使用多个不同的编辑器模板作为只读模板。您可以使用
首先,在Views\Shared\EditorTemplates
文件夹中创建一个新的EditorTemplate,名称为DisplayOnly.cshtml
,唯一的内容是行
@Html.DisplayForModel()
然后,用uihintatAttribute
标记从未编辑但显示的属性:
public class MyViewModel
{
[UIHint("DisplayOnly")]
public string OnylyDisplayed { get; set; }
public string Editable { get; set; }
}
即使构建了EditoFor(…)
,模板引擎也会将您路由到显示模板
编辑
我确信这会以这种方式工作,但我第一次发布了让它工作的命令;有趣的是,模板中类似于
@Html.LabelForModel()
的东西可以工作。也许我错过了什么。如果您需要一个简单的输出,那么只需在模板中添加@Model
。对于不同的类型,您可以使用多个不同的编辑器模板作为只读模板。谢谢-因此他们可以将此功能添加到DataAnnotationsHanks中-因此他们可以将此功能添加到DataAnnotations中