重定向到另一个控制DNN

时间:2015-09-21 10:31:27

标签: redirect dotnetnuke dotnetnuke-module dotnetnuke-7

在我的自定义DNN模块的Page_Load事件中,我使用以下内容检索我存储的设置。

 if (((string)Settings["username"] != null) && ((string)Settings["username"] != ""))
  username = "";
 {
   username = (string)Settings["username"];
if (((string)Settings["password"] != null) && ((string)Settings["password"] != ""))
{
  password = (string)Settings["password"];
}
if (((string)Settings["baseServiceUrl"] != null) && ((string)Settings["baseServiceUrl"] != ""))
{
  baseServiceUrl = (string)Settings["baseServiceUrl"];
}
baseServiceUrl = "";

现在我的问题是如果用户名,密码或baseServiceurl为空,我该如何将其重定向到我的模块设置(称为settings.ascx)控件。

我确定它不像Response.Redirect('settings.ascx')那么简单;

我的目标是取代     username =“”;

使用类似于Response.Redirect('settings.ascx');

的代码段

请帮忙

2 个答案:

答案 0 :(得分:1)

如果要加载在DNN中注册的其他ASCX文件(通过MANIFEST文件在模块定义中注册),可以通过调用EditUrl方法或DNN中的NavigateURL方法来执行此操作。

EditUrl(“Settings”)其中Settings是模块定义中定义的ControlKey。

如果您的控件继承自PMB,则可以使用PortalModuleBase编辑URL。

答案 1 :(得分:0)

再次感谢Chris,你的答案是正确的,但我决定通过模式弹出来获取模块的设置。这就是我做的答案,以获得javascript弹出脚本和网址,我右键点击齿轮图标使用谷歌浏览器检查元素。

然后我复制了锚标记href属性的内容,这看起来有点像

image_tag

在我的default.aspx页面中,我创建了一个没有href的锚标记。我把它作为一个服务器控件,通过输入runat = server并向其添加一个ID并使可见性为false(在我的逻辑中,如果它不符合我的标准,我会将其显示)

href="javascript:dnnModal.show('http://localhost/TestPage/ctl/Module/ModuleId/417?ReturnURL=/TestPage&popUp=true',/*showReturn*/false,550,950,true,'')">

接下来,我创建了一个动态构建链接的方法

<a runat="server" class="btn btn-success" id="settingsLink" visible="false" > <img src="/images/action_settings.gif"><span>Settings</span></a>

这是我在页面加载中使用该功能的地方

private string settingsUrlBuilder()
{
    var s = new StringBuilder();
    var urlPartArray = TabController.CurrentPage.FullUrl.ToString().Split('/');
    var partUrl = urlPartArray[3].ToString();
    s.Append("javascript:dnnModal.show('");
    s.Append(TabController.CurrentPage.FullUrl.ToString().ToLower());
    s.Append("/ctl/Module/ModuleId/" + ModuleId.ToString());
    s.Append("?ReturnURL=/");
    s.Append(partUrl);
    s.Append("&popUp=true");
    s.Append("',/*showReturn*/false,550,950,true,'')");
    return s.ToString();
}