如何重定向到DotnetNuke中的另一个视图(UserControl' .ascx')?

时间:2016-11-05 11:23:39

标签: asp.net user-controls dotnetnuke dotnetnuke-module dotnetnuke-7

我是DotnetNuke的新手。我不知道DotnetNuke的所有术语。请指正。这将有助于我改进。

我创建了一个带有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 个答案:

答案 0 :(得分:2)

NavigateUrl必须在其他参数中包含tabId和moduleId才能工作。导航到模块内部视图的更简单方法是使用base.EditUrl(),它只需要视图的controlKey。请参阅下面的代码段,设置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);
}