Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用EditURL()或NavigateURL()在DotNetNuke模块控件之间导航_C#_Asp.net_Dotnetnuke_Dotnetnuke Module - Fatal编程技术网

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

C# 使用EditURL()或NavigateURL()在DotNetNuke模块控件之间导航,c#,asp.net,dotnetnuke,dotnetnuke-module,C#,Asp.net,Dotnetnuke,Dotnetnuke Module,好的,我是DotNetNuke的新手,需要在DNN中编写一个简单的模块,为每个人显示一篇文章,并允许管理员编辑文章/添加一篇新文章 我有一个测试页面,其中包含一个DNN模块,其中有一个模块定义和两个控件。默认控件根据querystring中的articleID字段显示文章。然后单击一个按钮以加载编辑控件并在查询字符串中传递articleID 如果我在onClick中使用EditURL(),编辑控件将加载正确的articleID,但使用的是管理员皮肤。如果我使用Globals.NavigateUR

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

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

如果我在onClick中使用
EditURL()
,编辑控件将加载正确的articleID,但使用的是管理员皮肤。如果我使用
Globals.NavigateURL()
,则会显示正确的外观,但我的编辑控件不会加载到页面中

关于如何判断我做错了什么,或者如何使用正确的外观加载编辑控件,有什么线索吗

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

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

        Response.Redirect(newURL);


实际上你做得很正确-DNN中的editurl确实加载了管理员皮肤-通常这个皮肤是基于管理内容的人,所以它去掉了所有其他模块并显示了“基本”。对还是错这就是它的作用

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


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

有关如何工作的详细信息,您可以查看我的博客主题:。最后,如果您希望在不使用管理员皮肤的情况下导航到编辑控件,请查看Michael Washington的“模块导航选项”中的选项2到4。感谢您提供这些链接,它们非常有用,我认为DynamicControlsPlaceholder控件是,未来面向客户的模块的发展方向。谢谢。我想对于我目前的需要,这是可以接受的行为,因为只有管理员才会看到这个屏幕。对于具有多个面向客户的控件的未来模块,我认为最好的方法是通过上面由BDUKS链接的DynamicControlsPlaceholder动态加载控件。谢谢你自己,我自己已经忘记了这个解决方案-是的,其中一个也是非常可行的
        string newURL = Globals.NavigateURL(this.TabId, "EditArticle","articleID="+Request.QueryString["articleID"]);

        Response.Redirect(newURL);