1

为几个模块创建清单时遇到问题。模块控件位于:

DesktopModules/Org/ItemManagement

每个模块都做相关但不同的事情,因此应该可以作为独立模块拖到页面上。

环顾四周,我想我需要在清单中创建多个包定义,所以我做到了。然后我将控件和清单上传到上述文件夹,并使用 Host->Extensions->Create New Module->From Manifest 安装

好像安装没问题,出现在扩展列表中,出现在模块栏添加到页面;/DesktopModules/internalservices/API/controlbar/AddModule但是,当我拖动到页面上的某个位置时,调用with 时出现页面错误"The requested resource does not support http method 'GET'.".

如果我将每个控件放在单独的文件夹中并使用 Host->Extensions->Create New Module->From Control 安装一切正常,但这并不理想,因为所有控件最终都会共享资源,例如 CSS、脚本等,理想情况下我希望他们从 ModulePath 中获取它们,这样所有东西都在一个地方。

我的清单中有什么明显的错误吗?

    <?xml version="1.0" encoding="UTF-8"?>
    <dotnetnuke type="Package" version="5.0">
        <packages>
            <package name="Org_My_Items" type="Module" version="01.00.00">
                <friendlyName>My Items</friendlyName>
                <description>
                    My Items grid
                </description>
                <owner>
                    <name>Org</name>
                    <organization>Org</organization>
                    <email>noreply@example.com</email>
                </owner>
                <components>
                    <component type="Module" version="01.00.00">
                        <desktopModule>
                            <moduleName>My Items</moduleName>
                            <foldername>Org</foldername>
                            <moduleDefinitions>
                                <moduleDefinition>
                                    <friendlyName>My Items</friendlyName>
                                    <moduleControls>
                                        <moduleControl>
                                            <controlSrc>DesktopModules/Org/ItemManagement/MyItems.ascx</controlSrc>
                                            <controlTitle>My Items</controlTitle>
                                            <controlKey>MyItems</controlKey>
                                            <controlType>View</controlType>
                                        </moduleControl>
                                    </moduleControls>
                                </moduleDefinition>
                            </moduleDefinitions>
                        </desktopModule>
                    </component>        
                </components>
            </package>
            <package name="Org_My_Details" type="Module" version="01.00.00">
                <friendlyName>My Details</friendlyName>
                <description>
                    My Details summary display
                </description>
                <owner>
                    <name>Org</name>
                    <organization>Org</organization>
                    <email>noreply@example.com</email>
                </owner>
                <components>
                    <component type="Module" version="01.00.00">
                        <desktopModule>
                            <moduleName>My Details</moduleName>
                            <foldername>Org</foldername>
                            <moduleDefinitions>
                                <moduleDefinition>
                                    <friendlyName>My Details</friendlyName>
                                    <moduleControls>
                                        <moduleControl>
                                            <controlSrc>DesktopModules/Org/ItemManagement/MyDetails.ascx</controlSrc>                                       
                                            <controlTitle>My Details</controlTitle>
                                            <controlKey>MyDetails</controlKey>
                                            <controlType>View</controlType>
                                        </moduleControl>
                                    </moduleControls>
                                </moduleDefinition>
                            </moduleDefinitions>
                        </desktopModule>
                    </component>        
                </components>
            </package>
        </packages>
    </dotnetnuke>
4

1 回答 1

2

我的开源DNN 社交模块有一个类似的包设置。比较我正在安装的两个桌面模块,每个模块都有自己的模块定义,并且位于同一个文件夹中。

我注意到的一件事是您为模块控件指定了一个 controlkey。据我了解,DNN 在每个模块定义中查找一个控件,其中包含一个空的控制键,该键<controlKey />表示模块的默认视图。也许这是一个问题?

于 2013-10-30T12:54:58.847 回答