Obtener el TabId/ModuleId de la página actual en el host de scripts razor de DNN.
Tenemos varias páginas de DNN (última versión) que utilizan el módulo de secuencias de comandos Razor (compartido), configurado para el mismo archivo cshtml. El script incorpora contenido externo que siempre ha sido el mismo en cada página. Ahora necesitamos que el contenido sea contextual para cada página. No veo una forma de agregar una entrada de configuración al módulo de secuencias de comandos y preferiría evitar un script separado para cada página.
¿Existe alguna forma de obtener el TabId, ModuleId, nombre de la página u otro valor identificativo en el script? Tenemos otras páginas Razor que hacen referencia a DotNetNuke.UI.Modules.ModuleInstanceContext y utilizan TabId o ModuleId, pero no veo una forma de obtener una instancia en este contexto.
davy.ai
Sí, hay una forma de obtener el TabId, ModuleId, nombre de la página u otro valor identificativo en el script. Puedes usar la clase
DotNetNuke.Services.Tokens.TokenReplace
para reemplazar tokens en tu archivo cshtml con valores del contexto actual. Por ejemplo, puedes utilizar{TabId}
o{ModuleId}
en tu archivo cshtml y reemplazar estos tokens con los valores reales utilizando el métodoTokenReplace.ReplaceTokens
.Para obtener una instancia de
ModuleInstanceContext
, puedes utilizar la claseDotNetNuke.Entities.Modules.ModuleController
para obtener el módulo de contexto actual y luego obtener su contexto de instancia. Aquí tienes un ejemplo de código:Ten en cuenta que necesitarás pasar el parámetro
moduleId
para obtener el contexto del módulo correcto. Puedes reemplazar{ModuleId}
en tu archivo cshtml con este valor para generar dinámicamente contenido específico del contexto.