Asp.net mvc DriverResult编辑器在Orchard中渲染自定义模板
我正在学习这个模块()。此模块提供了一种在注册中显示自定义用户字段的简单方法。 覆盖AccountController表单用户并在注册模板中加载编辑器模板 会计控制员Asp.net mvc DriverResult编辑器在Orchard中渲染自定义模板,asp.net-mvc,c#-4.0,orchardcms,Asp.net Mvc,C# 4.0,Orchardcms,我正在学习这个模块()。此模块提供了一种在注册中显示自定义用户字段的简单方法。 覆盖AccountController表单用户并在注册模板中加载编辑器模板 会计控制员 var shape = _orchardServices.New.Register(); var user = _orchardServices.ContentManager.New("User"); if (user != null) {
var shape = _orchardServices.New.Register();
var user = _orchardServices.ContentManager.New("User");
if (user != null) {
shape.UserProfile= _contentManager.BuildEditor(user);
}
return new ShapeResult(this, shape);
Register.cshtml
</div>
@if (Model.OERegister != null) {
<fieldset>
@Display(Model.UserProfile)
</fieldset>
}
<div>
@如果(Model.OERegister!=null){
@显示(Model.UserProfile)
}
此处的形状是编辑器模板(EditorTemplate/Parts/Template)
它工作得很好,但我需要从注册表中隐藏一些字段
我有点迷路了,我想用最兽人的方式来做
提前感谢。据我所知,这里的问题是如何在表单中隐藏一些字段 根据表单代码的作者如何设计表单,或者您是否是开发人员,有多种方法:
- 将表单的各个部分设置为单独的形状,并在驱动程序的组合驱动程序结果中返回它们的工厂。这意味着,您的驱动程序通过为零件编辑器提供形状来构建表单的一部分,将注册多个形状(这类似于BodyPartDriver.Display()的功能:它返回三个单独的形状注册)。现在可以通过放置单独控制这些对象,因此您也可以隐藏它们
- 如果无法很好地控制表单的生成方式,则仍然可以覆盖包含要隐藏的字段的形状模板。然后在覆盖中,您可以自由自定义窗体的外观。请注意,与第一种解决方案不同,这不会自动阻止用户将隐藏字段的数据发布到服务器,从而保存它
顺便说一句,我认为ContentManager.New()永远不会返回null。即使内容类型不是静态定义的(即通过迁移或ContentDefinitionManager创建),它也会返回一个内容项。谢谢,您的回答给了我一些指导。