DotNetNuke 嵌套控件重定向方法

DotNetNuke Nested Controls Redirection Method

有任何 DNN 开发人员解决了这个问题吗? 我有一个带有 4 个用户控件的用户控件 (ascx)(DotNetNuke 扩展名)。第一个视图表单上有按钮可以访问其他视图。 当您访问另一个控件时,您可以从该控件访问其他控件。我正在寻找将用户重定向回用户之前使用的控件的最佳方法,而不管控件的 'level'。

举个例子。

1) 第一种查看形式:人物列表

可用按钮:

2) 用户地址 3) 用户下载 4) 用户视频 5) 另一个用户相关模块

假设我选择 2) 用户地址

在该用户控件上,我有按钮 3、4 和 5

如果我想 return 到第一个视图控件 (1),我只需使用 DotNetNuke.Nvigation.NavigateURL 并传入我正在查询的用户参数。效果不错。

但现在我没有返回 1,而是选择转到 3) 用户下载 当用户点击 'Return' 按钮转到上一个屏幕时(不是浏览器后退按钮;这是我表单上的一个按钮)我想返回到 2) 用户地址,而不是返回到第一个视图控件(1).

我尝试将第一个视图控件添加为同一扩展中的另一个控件,并使用 EditURL 调用它,但屏幕在重定向时显示为空白(DNN 菜单等除外)。

如何将用户重定向到上一个控件,而不是模块的第一个控件?

如果这没有意义,请告诉我,我会尽力解释得更好。

谢谢。

您可能希望将请求中的查询字符串参数传递给各种控件,以便您可以跟踪它们的位置以及如何返回。

示例:

而不是仅仅调用 ctl=controlvalue 尝试调用 ctl=controlvalue&prevvalue=edit

然后您可以连接您的 Return 代码以使用 "prevvalue"

的查询字符串值

克里斯

查看我在 Module Views, Settings & Navigation 上的 DNNHero.com 视频教程。我提供了有关执行模块视图导航的不同方式的代码和说明。

我决定为此编写一个自定义解决方案。效果确实不错,就是有点牵强。

1) 我写了一个 SourceType 枚举来列出我应用程序中的不同形式。

2) 任何页面都可以作为“基页”。加载表单时,我在 "base page url" 的设置中读取了 属性,如果还没有,我会写下基页的 rawurl到设置以及它是哪种形式 (SourceType) 的枚举值。

3) 由于子控件都使用与基页相同的设置,因此每当发生导航时,我将基页的枚举值传递给新表单;在新表单中,我阅读了新表单 Page_Load 中的基页 URL,如果当前表单的枚举值与传入的枚举值(它是)不同,我将使用它基础 URL 为 link 'back'.

4) 如果用户从第二个表单转到另一个表单,则重复该过程。但是我将两个 'prevous' 表单枚举都传递给第三个表单,因此它显示了两个 link 可供选择的 return 到。

5)这个可以尽可能长的重复。一个警告:在将 SourceForms 属性 传回以前的表单之前,您必须从 SourceType 枚举中删除当前表单;如果您不这样做,您来自的表单也将被列为您不想要的 'go back to' 表单。

希望这可以帮助那些在模块中的多个控件中找出干净的 DNN 重定向解决方案有困难的人。

如果不清楚,请联系我,我会展示我的一些代码。