0

我是DotnetNuke中的新成员。我不知道DotnetNuke的所有术语。请纠正我。这将帮助我改进。如何重定向到DotnetNuke中的另一个视图(UserControl'.ascx')?

我用2个用户控件创建了一个简单项目。 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

它工作正常。我如何重定向到另一个模块?即我在模块测试1上,并且我想重定向到模块测试2。在这种情况下,将不存在密钥。请建议 –

+1

Nanji为了导航到另一个来自不同模块定义的模块视图,您需要知道ModuleId和TabId,并且可以像上面那样使用NavigateUrl()。通常,您需要为管理员添加一个模块设置,以选择他们想要重定向的模块和页面。通过ModuleController.GetModulesByDefinition()可以获得使用模块定义名称的所有模块实例的列表。 – DotNetNuclear

相关问题