我试图找出Orchard"添加用户"页面已加载。我对MVC有一点了解。这些是加载到页面中的部分:
添加用户主页:
.. \ Orchard.Web \模块\ Orchard.Users \视图\管理员\ Create.cshtml
创建用户部分 .. \ Orchard.Web \模块\ Orchard.Users \视图\ EditorTemplates \零件\ User.Create.cshtml
角色部分 .. \ Orchard.Web \模块\ Orchard.Roles \视图\ EditorTemplates \零件\ Roles.UserRoles.cshtml
保存按钮 .. \ Orchard.Web \核心\内容\视图\ Content.SaveButton.cshtml
我的问题是这些单独的部分如何在一个页面中加入?哪个班级负责这样做?
答案 0 :(得分:1)
这些独立的部分由部件的负责驱动程序连接在一起。这些驱动程序负责渲染该部分附带的形状。例如,SaveButton在Orchard.Core / Contents / Drivers / ContentsDriver中的ContentsDriver中呈现:
protected override DriverResult Editor(ContentPart part, dynamic shapeHelper) {
var results = new List<DriverResult> { ContentShape("Content_SaveButton", saveButton => saveButton) };
if (part.TypeDefinition.Settings.GetModel<ContentTypeSettings>().Draftable)
results.Add(ContentShape("Content_PublishButton", publishButton => publishButton));
return Combined(results.ToArray());
}
虽然驱动程序负责渲染形状,但驱动程序的启动规则是通过placement.info完成的(参见Orchard.Core / Contents / Placement.info):
<Placement>
<Place Content_SaveButton="Sidebar:23"/>
</Placement>
如果某处(在模块或主题中)定义了不应显示保存按钮,则可能通过placement.info完成。你可能需要搜索一下这样的地方:
<Placement>
<!-- This will cause the savebutton not to render -->
<Place Content_SaveButton="-"/>
</Placement>
或者,因为它表示它应该在SideBar区域中呈现保存按钮,所以使用的某个备用按钮可能不会显示SideBar区域(@Display(Model.SideBar)
)