我正在创建一个模块,并且我能够添加一个用户控件作为视图类型,一切都正常了。我想添加第二个控件,也是作为视图类型,但这就是问题开始的地方。
如果我只是将新控件添加到模块定义中,它只显示该控件,而不是两者都显示。如果我移除它,原来的控件显示正常。返回到模块定义,我转到模块控件并为各自的键属性赋值。当我保存时,我的模块将从显示它的页面中消失。如果我再次尝试添加它,我会得到"Object reference not set to a instance of an object“。
通过试验和错误,我发现如果我删除密钥,我可以重新添加模块,它再次工作(至少如上所述)。
本质上,我希望我的模块有多个视图,其中各个视图可以显示在不同的页面上(很像博客模块)。我没有创建一个用于分发的包,所以我几乎要创建一个单独的模块,但是学习经验在哪里呢?
我已经搜索了一篇关于创建具有多个视图的模块的教程。有人能提供一些见解吗?
发布于 2010-12-09 19:38:21
我通过使用模块设置来选择我想要用于该实例的显示来解决这个问题,在我的例子中,我使用该设置来确定哪个前端是可见的,哪个是不可见的,以及后端代码。
另一种选择是让一个视图ascx作为占位符,并根据模块集注入您想要的任何一个ascx视图。
我以前用过这两种方法,而且都工作得很好
发布于 2010-12-13 09:56:50
在DotNetNuke中,只能有一个“视图”,因此,如果您想制作根据情况显示不同视图的内容,则必须创建一个调度视图。因此,根据您的模块设置,或者URL参数、cookie、会话,主视图中的某些内容会获取另一个用户控件来显示所需的内容。
这篇文章谈到了一点Dispatch View
听起来你找到了一个适合你的解决方案。
发布于 2010-12-13 22:12:31
开箱即用的DotNeNuke也支持使用多个视图,但是一旦您切换到一个不同的视图,模块就会进入“隔离模式”,在那里它成为页面上唯一可见的模块。
如果此行为对您有效,则可以添加多个控件,添加的第一个控件不带键,第二个控件添加特定的键。然后,您可以使用NavigateUrl或EditUrl构造指向特定控件的链接。
从“编辑”的角度来看,此模式的使用确保了您的用户只有您的模块具有一致的环境。从视图的角度来看,使用其他模式通常是一个“更好”的选择。
https://stackoverflow.com/questions/4391432
复制相似问题