10

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

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

如果我EditURL()在 onClick 中使用,则使用正确的 articleID 加载编辑控件,但使用管理员皮肤。如果我使用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);
4

1 回答 1

5

实际上你这样做是正确的——DNN 中的 editurl 确实加载了 Admin 皮肤——通常这个皮肤基于管理内容的人,所以它去除了所有其他模块并显示“基础”。对或错,这就是它的作用。

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

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

于 2009-12-15T23:22:21.047 回答