好的我是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) 我是DotNetNuke的新手.请温柔.我正在使用"DotNetNuke 6编译模块"模板来构建我的模块.我已经在项目中有了View.ascx控件,并添加了另一个名为test.ascx的控件.
我的问题是:如何在我添加模块的不同页面中显示不同的不同视图.(如果可以的话),例如Show View.ascx on default.aspx page然后在default2.aspx页面上显示test.ascx用户控件?
如果这不可能,这意味着我需要为每个ascx控件提供不同的visual studio项目.当然不是.
我正在为DNN 5编写自定义模块,我需要一个"管理"链接,以便在模块中的每个控件上.我创建了一个新的UserControl("ManagerLink"),它继承自PortalModuleBase,将我的链接放入该控件,并将该控件放在所有主要控件上.
问题是ModuleId和TabId在"ManagerLink"嵌套控件中始终为-1.PortalId工作得很好,我可以通过PortalSettings.ActiveTab.TabID得到一个TabId.
为什么我不能从"ManagerLink"控件中获取ModuleId和TabId,即使它继承自PortalModuleBase?
是否有另一种获取ModuleId的方法(相当于PortalSettings.ActiveTab.TabID)
更新2014年:
刚刚看到另一个答案,它比原来更好(并接受它).
如果您使用的是DNN 6及更早版本,请替换ModuleBase为PortalModuleBase
我正在安装DotNetNuke,在安装过程中它询问数据库密码,我提供的密码与我用于SQL服务器的密码相同,但是显示错误.
用户帐户"sa"的指定密码无效,或无法连接到数据库服务器
截图:

我已经在DNN上创建了一个自定义模块,创建了它的包并与另一个DNN应用程序集成.它工作正常.但是在另一个DNN应用程序上传模块后我手动创建模块数据库.这就是我的问题..
我想创建一个带有数据库脚本的模块包.因此,当最终用户上传我的模块时,模块数据库应该自动创建.
简单来说,我需要一个点击解决方案,就像市场上可用的商业模块一样.请提出任何解决方案.
我正在创建一个简单的DotNetNuke模块,每次添加一个包含ajax的控件时,它都会干扰编辑页面菜单.有问题的控件来自Syncfusion,它是数字文本框.只要我使用标准的Microsoft用户控件,页面和菜单功能就可以正常工作.例如,如果我更改asp.net或html的ajax数字文本框,那么它运行良好.只要我添加ajax文本框,编辑页面菜单就不起作用.还有其他人遇到过这个问题吗?
附加信息:Syncfusion控件不需要任何特定的jQuery版本.DNN事件查看器中未记录任何错误.我一直在尝试使用FireBug跟踪曲目,但它没有显示任何内容.
我附上了截图以帮助可视化问题.

我正在尝试使用DotNetNuke中的DAL2访问数据.当我使用repository.Get()来获取某个表的所有字段时,我有时会收到此错误:
'价值不能为空.参数名称:con'
public IEnumerable<SitesProvince> GetAll()
{
using (var ctx = DataContextContent.Instance())
{
var rep = ctx.GetRepository<SitesProvince>();
return rep.Get();
}
}
Run Code Online (Sandbox Code Playgroud)
模型:
[TableName("Sites_Province")]
[PrimaryKey("Sites_Province_No")]
[Cacheable("Sites_Province", CacheItemPriority.Default, 20)]
[Scope("Sites_Province_No")]
public class SitesProvince
{
public int Sites_Province_No { get; set; }
public string BU { get; set; }
public string Province { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
可能是什么问题呢?在某些查询中,它有效,有些则没有,我认为方法之间没有任何区别.
我找到了这个,但我没有合同:http: //clraddins.codeplex.com/discussions/24568
我正在尝试在Web API中为自定义模块使用此属性:
[DnnModuleAuthorize(AccessLevel = DotNetNuke.Security.SecurityAccessLevel.Edit)]
Run Code Online (Sandbox Code Playgroud)
但无论我设置什么SecurityAccessLevel,我都会得到401未经授权的响应.
我能够通过添加以下代码来使代码工作:
[AllowAnonymous]
Run Code Online (Sandbox Code Playgroud)
在方法上,并添加:
if (!ModulePermissionController.CanEditModuleContent(this.ActiveModule))
return Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "You do not have permission to access this content.");
Run Code Online (Sandbox Code Playgroud)
到我的方法的开头,但似乎这是一个我真的不应该需要的解决方法,因为它正是那个属性的用途.我正在运行DNN 7.2.1.
任何人都知道我的属性出错了吗?
我对DNN中的本地化过程了解不多.问题是,如何本地化新模块?
是否可以单独包含每个模块的本地化文件?你能想出什么解决方案?
dotnetnuke localization internationalization dotnetnuke-module
我们的服务器场由2台Web服务器组成(我们使用DNN 6.0.2).如果管理员更改横幅,模块或图片的权限,则这些更改仅在已完成更改的服务器上可见.在调用"主机"菜单中的缓存清除之前,其他服务器上的更改不可见.
这是正确的行为吗?我们是否遗漏了网络农场配置中的内容?
dotnetnuke ×8
c# ×3
asp.net ×2
dotnetnuke-7 ×2
sql ×2
sql-server ×2
ajax ×1
dotnetnuke-5 ×1
localization ×1
package ×1
webforms ×1