DotNetNukeで、(TabIdではなく)ModuleIdがある場合にModuleInfoオブジェクトを取得するにはどうすればよいですか?
-
05-07-2019 - |
質問
IDでモジュールを取得するためにDNNフレームワークが提供する唯一のメソッドには、タブIDも必要でした。タブIDを持っていない場合はどうすればよいですか?
解決
DotNetNuke.Entities.Modules.ModuleControllerクラスのGetModuleメソッドは、「null」を受け入れます。タブIDがない場合は、タブIDの値。つまり、次のことを試してください。
new ModuleController().GetModule(moduleId, DotNetNuke.Common.Utilities.Null.NullInteger)
他のヒント
ヌルのTabIdをGetModuleに渡すときの注意点の1つは、多数の異なるタブにインストールされているモジュールがある場合、最初のタブを取得するため、TabId、TabModuleIdおよびModuleOrderは、最初のインスタンスに基づいており、必要なインスタンスである場合とそうでない場合があります。
HTH、
しない
ブライアン、GetModule()のコードを調べたところ、フレームワークにtabidがnullであるかどうかをチェックする特定のVBコードはありません。面白いのは、SqlDataProviderの一部であるストアドプロシージャが、tabidが何であっても、一致するmoduleidを持つ行をModulesビューから選択することです...
ALTER PROCEDURE [dbo].[dnn_GetModule]
@ModuleId int,
@TabId int
AS
SELECT *
FROM dbo.dnn_vw_Modules
WHERE ModuleId = @ModuleId
AND (TabId = @TabId or @TabId is null)
これを正しく理解すると、@ tabidがnullであるかどうかに関係なく、指定したmoduleidであるすべての行が返されます。 @TabIdはかなり無意味になりますよね
所属していません StackOverflow