[英]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()
但我无法重定向它。
我不想将页面放在一个文件夹中(根据我的要求)
请给我问题的解决方案
将 EnterpriseSearch 模块拖放到根 DNN 安装中名为 EnterpriseSearch 的内容页面上。 用户在访问此页面时将在其地址栏中看到“domain/EnterpriseSearch.aspx”。
将 DocumentSearch 模块拖放到根 DNN 安装中名为 DocSearch 的内容页面上。 访问此页面时,用户将在其地址栏中看到“domain/DocSearch.aspx”。
将结果模块拖放到根 DNN 安装中名为 SearchResults 的内容页面上。 用户在访问此页面时将在其地址栏中看到“domain/SearchResults.aspx”。
在每个搜索模块的代码隐藏中,在用户单击搜索后输入以下代码(搜索按钮单击处理程序)
Response.Redirect("/Search-Results.aspx?search=" & httpUtility.UrlEncode(TXT_Search.Text))
在 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 指令和从一页重定向到另一页的工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.