使用EditURL()或NavigateURL()在DotNetNuke模块控件之间导航

时间:2009-12-15 21:36:06

标签: c# asp.net dotnetnuke dotnetnuke-module

好的我是DotNetNuke的新手,需要在DNN中编写一个简单的模块,为每个人显示一篇文章,并允许管理员编辑文章/添加新文章。

我有一个测试页面,其中包含一个DNN模块,其中包含一个模块定义和该定义中的两个控件。默认控件根据查询字符串中的articleID字段显示文章。然后单击应该加载编辑控件的按钮,并在查询字符串中传递articleID。

如果我在onClick中使用EditURL(),编辑控件将加载正确的articleID,但使用admin皮肤。如果我使用Globals.NavigateURL(),则会显示正确的皮肤,但我的编辑控件未在页面中加载。

有关我如何做错或如何使用正确的皮肤加载编辑控件的任何线索?

我的两种切换到编辑控件的方法(在我的按钮点击事件中)如下所示:

string newURL = this.EditUrl("articleID", Request.QueryString["articleID"], "EditArticle");

        Response.Redirect(newURL);

        string newURL = Globals.NavigateURL(this.TabId, "EditArticle","articleID="+Request.QueryString["articleID"]);

        Response.Redirect(newURL);

1 个答案:

答案 0 :(得分:5)

实际上你正确地这样做了 - DNN中的editurl确实加载了Admin皮肤 - 通常这个皮肤是基于某人管理内容所以它剥离所有其他模块并显示'基础'。这是对的还是错的。

如果您不想这样做,您可以在查询字符串中提供一个开关并显示一个单独的面板或执行多视图控件,并根据查询字符串中的开关显示不同的视图。

还有一些其他方法,例如将内容区域更改为使用ajax编辑文本区域或使用弹出模式样式窗口。