في دوتنت، كيف يمكنني الحصول على كائن ModuleInfo إذا لدي مجرد ModuleId (وليس ذابل)

StackOverflow https://stackoverflow.com/questions/248067

سؤال

والطريقة الوحيدة التي قدمتها إطار DNN للحصول على وحدة عن الهوية أيضا مطلوب ID التبويب. ماذا يمكنني أن أفعل إذا كنت لا <م> هل لديك معرف التبويب؟

هل كانت مفيدة؟

المحلول

وطريقة GetModule الخروج من الطبقة DotNetNuke.Entities.Modules.ModuleController لن تقبل قيمة "فارغة" لمعرف التبويب إذا لم يكن لديك ID التبويب. وهذا هو، حاول القيام بما يلي:

new ModuleController().GetModule(moduleId, DotNetNuke.Common.Utilities.Null.NullInteger)

وانظر أيضا بلدي بلوق وظيفة على موضوع .

نصائح أخرى

وشيء واحد أن احترس عند تمرير ذابل لاغية لGetModule هو أنه إذا كان لديك وحدة المثبت على عدد من علامات تبويب مختلفة، عليك أن تكون الحصول على أول واحدة الى الوراء، وبالتالي فإن القيم ذابل، TabModuleId و وسيستند ModuleOrder في ذلك المقام الأول، والذي قد يكون أو لا يكون المثال أردت.

وHTH،

ودون

وبراين، أنا فقط أخذت نظرة على رمز GetModule ()، وليس هناك أي رمز VB محددة في الإطار الذي يتحقق للذابل يجري فارغة. ما هو المثير للاهتمام على الرغم من أن الإجراء المخزن الذي هو جزء من SqlDataProvider يختار الصفوف من عرض الوحدات التي لديها moduleid المطابقة، بغض النظر عن ما هو ذابل ...

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)

إذا أنا أفهم هذا صحيح، وهذا سيعود كافة الصفوف حيث moduleid هو الذي حددته، لا يهم إذاtabid هو باطل أم لا. وهذا يجعلTabId نوعا من العبث، لا تظن؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top