Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc DriverResult编辑器在Orchard中渲染自定义模板_Asp.net Mvc_C# 4.0_Orchardcms - Fatal编程技术网

Asp.net mvc DriverResult编辑器在Orchard中渲染自定义模板

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) {

我正在学习这个模块()。此模块提供了一种在注册中显示自定义用户字段的简单方法。 覆盖AccountController表单用户并在注册模板中加载编辑器模板

会计控制员

        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创建),它也会返回一个内容项。

谢谢,您的回答给了我一些指导。