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

hot*_*t86 10 c# asp.net dotnetnuke dotnetnuke-module

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

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

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

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

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

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

        Response.Redirect(newURL);
Run Code Online (Sandbox Code Playgroud)

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

        Response.Redirect(newURL);
Run Code Online (Sandbox Code Playgroud)

bra*_*ice 5

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

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

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