繁体   English   中英

如何从一个 DotNetNuke 模块重定向到另一个模块?

[英]How do I redirect from one DotNetNuke module to another?

我是 dotnetnuke 的新手。

我在 desktopmodules 文件夹中开发了三个模块。 喜欢

desktopmodules(folder)

     |
     --  EnterpriseSearch(folder)
           EnterpriseSearch.ascx

     |
     -- document search(folder)
           docsearch.ascx

     |
     --result(folder)
           result.ascx

结果页面对于 enterprice 搜索和文档搜索很常见,我想从 EnterpriseSearch 和带有参数的 docsearch 重定向到结果页面。

我尝试将结果模块“类型”作为“视图”和DotNetNuke.Common.Globals.NavigateURL的方法

我尝试将结果模块“类型”设置为“编辑”

editurl()

但我无法重定向它。

我不想将页面放在一个文件夹中(根据我的要求)

请给我问题的解决方案

  1. 将 EnterpriseSearch 模块拖放到根 DNN 安装中名为 EnterpriseSearch 的内容页面上。 用户在访问此页面时将在其地址栏中看到“domain/EnterpriseSearch.aspx”。

  2. 将 DocumentSearch 模块拖放到根 DNN 安装中名为 DocSearch 的内容页面上。 访问此页面时,用户将在其地址栏中看到“domain/DocSearch.aspx”。

  3. 将结果模块拖放到根 DNN 安装中名为 SearchResults 的内容页面上。 用户在访问此页面时将在其地址栏中看到“domain/SearchResults.aspx”。

  4. 在每个搜索模块的代码隐藏中,在用户单击搜索后输入以下代码(搜索按钮单击处理程序)

     Response.Redirect("/Search-Results.aspx?search=" & httpUtility.UrlEncode(TXT_Search.Text))
  5. 在 SearchResults.aspx 的搜索结果模块中,在代码隐藏页面加载 function 中,执行以下操作:

     Dim MyString as String = httpUtility.URLDecode(Request.QueryString("search")) ' perform search...

由于控件位于不同的模块中,因此您需要使用Globals.NavigateURL导航到模块所在的特定页面。 如果 result.ascx 是同一模块的控件,则可以使用EditUrl并传入控制键,但这只能在同一模块定义中工作。

在这种情况下,您可能应该使用ModuleController.GetModulesByDefinition来获取门户上的结果模块,然后导航到其中一个模块所在的页面。

在视图控制按钮单击事件中写下面的代码,如

protected void Button1_Click(object sender, EventArgs e)
 {
    Response.Redirect(Globals.NavigateURL(PortalSettings.ActiveTab.TabID, "WebUserControl", "mid=" + ModuleId.ToString()));          
 }

按照下面的 url 指令和从一页重定向到另一页的工作。

http://www.dnnsoftware.com/Content/Dnn.Platform/Documentation/Using%20the%20Control%20Panel/Host%20Console/Extensions/Module%20Definitions%20and%20Controls/Adding%20a%20Module%20Control.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM