0

DotnetNuke에 새로운 내용이 있습니다. 나는 DotnetNuke의 모든 용어를 모른다. 제발 고쳐주세요. 그게 내가 향상시키는 데 도움이 될거야.DotnetNuke에서 다른보기 (UserControl '.ascx')로 리디렉션하는 방법?

2 개의 UserControl으로 간단한 프로젝트를 만들었습니다. 1- View.ascx, 2- ModuleInfo.ascx

1- View.ascx : 버튼이 있습니다. 다른 사용자 컨트롤로 리디렉션하려고합니다. ModuleInfo.ascx 여기에 코드가 있습니다.

protected void btn1_Click(object sender, EventArgs e) 
{ 
    Response.Redirect(DotNetNuke.Common.Globals.NavigateURL("ModuleInfo"), true); 
} 

2- ModuleInfo.ascx 정적 테이블을 포함합니다. 내가 DotNetNuke의에 모듈을 추가하는 방법

:

1- Add .zip file of build project to Admin --> Extension 
2- Edit Module from Host --> Extension --> Edit Module --> Edit Definition --> Add Module Control --> Added key "ModuleInfo" and selected view. 
3- Created new page and added module to it. 

페이지로드는, View.aspx이 괜찮습니다. 버튼이 있습니다. 하지만 버튼을 클릭하면 일부 페이지로 리디렉션되지만 비어 있습니다. 표가 나와야합니다.

아무 것도 나에게 제안 할 수 있습니까?

답변

1

NavigateUrl은 작동하려면 추가 인수에 tabId 및 moduleId를 포함해야합니다. 모듈 내부의 뷰를 탐색하는 더 간단한 방법은 뷰의 controlKey 만 필요로하는 base.EditUrl()을 사용하는 것입니다. 아래 코드 스 니펫을 참조하십시오. miUrl을 설정하는 두 줄은 동일합니다.

protected void btn1_Click(object sender, EventArgs e) 
{ 
    string miUrl = base.EditUrl("ModuleInfo"); 
    string miUrl = DotNetNuke.Common.Globals.NavigateURL(base.TabId, "ModuleInfo", String.Format("mid={0}", base.ModuleId)); 

    Response.Redirect(miUrl, true); 
} 
+0

잘 작동합니다. 다른 모듈로 리디렉션하려면 어떻게해야합니까? 즉, 모듈 Test1에 있고 모듈 Test2로 리디렉션하려고합니다. 이 경우 키가 없습니다. –

+1

난지를 제안하십시오. 다른 모듈 정의의 다른 모듈보기로 이동하려면 ModuleId와 TabId를 모두 알고 있어야하며 위와 같이 NavigateUrl()을 사용할 수 있습니다. 일반적으로 관리자가 리디렉션 할 모듈 및 페이지를 선택하기위한 모듈 설정을 추가합니다. ModuleController.GetModulesByDefinition()을 사용하여 모듈 정의 이름을 사용하여 모든 모듈 인스턴스의 목록을 가져올 수 있습니다. – DotNetNuclear