使用单独的解决方案(类库)来开发DNN的模块-C#版本(2)
上次写到使用VB类库,开发DNN模块,然后编译成 .DLL文件;但是其中有个比较严重的问题没有解决,就是控件的事件关联不上去,比如我做的是一个发送mail的控件,发送按钮的事件没有反应,今天研究 了一上午也没有解决,无奈之下换到 C#建一个类库, 问题解决了。
步骤跟上一片文章大概相同 http://www.cnblogs.com/ttc/archive/2008/07/18/1246248.html,
主要不同点:
1、添加了一个 .ascx.designer.cs 文件,这样就可以解决控件不存在的问题。
2、使用 VB的时候 “Inherits DotNetNuke.Entities.Modules.PortalModuleBase”这句话下面会出现蓝色波浪线,
提示“未定义类型 ”;而C#就没有这个问题。
3、如果使用 StarterKit 模板来做这个工作,那么 在 继承 PortalModuleBase 这个类之后 ,会自动增加对 IActionable 接口的实现,
如:public partial class CS_TEST : PortalModuleBase, IActionable
完成以上操作,编译成功,在DNN网站中导入模块,就可以实现发送mail的功能了。
使用 DotNetNuke_04.08.04_StarterKit.vsi 这个模板来开发,可以大大提高开发效率,不需要考虑控件不存在的问题;但是如果使用VB的模板,就会出现 80个错误,导致工程无法通过编译,而用C#,就能编译过去,原因是 VB模版默认工程引用的DotNetNuke.Library, 不是dotnetnuke.dll。
在此感谢 Baldwin 对我的帮助!