我想在模块中嵌入一个C#类,以便我可以使用按钮和单击事件来调用这些函数。我不知道该怎么做。我已经设法编写了我想要使用的类,但是我在哪里放置代码?我在DNN中创建了一个模块并得到了这个:
<%@ Control Language="C#" ClassName="MailingSystem" Inherits="DotNetNuke.Entities.Modules.PortalModuleBase" %>
<h1>Congratulations</h1>
<p>You have successfully created your module. You can edit the source of the module control by selecting the View Source Action from the Action Menu.</p>
<script runat="server">
</script>
我不能把我的代码放在这里,我得到关于命名空间不允许的各种错误,不能用“使用”导入类,等等。那我该怎么办?我的班级正在工作,我只需将其包装在模块中并将其放在DNN页面上。
答案 0 :(得分:1)
最好从DotNetNuke模块模板开始,例如one。它并不像创建aspx页面那么容易。
答案 1 :(得分:1)
只需双击页面的设计部分,页面加载部分就会显示在页面中,您可以将c#代码放在那里。
答案 2 :(得分:1)
您可能想要这样做:
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
/// code goes here
}
</script>
答案 3 :(得分:0)
如果你不想要去整个模块模板路线。执行以下操作。
DotNetNuke.Entities.Modules.PortalModuleBase
(您需要添加DotNetNuke.dll作为参考)在ASCX中:
<asp:Button ID="btnButton" Text="Click me" runat="server" />
代码背后:
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
btnButton.Click += btnButton_Click;
// OR
btnButton.Click += (sender, e)=> { // Button clicked! Do something };
}
protected void btnButton_Click(object sender, EventArgs e)
{
// Your button has been clicked, Do something
}
编译代码
从项目的bin文件夹中获取[yourprojectname].dll
文件,并将其复制到DNN的bin
文件夹中。然后,将模块控件ascx复制到DNN的DesktopModules文件夹中的专用文件夹
示例路径:DesktopModule&gt; YourProjectName&gt; [YourASCXName]的.ascx
登录DNN,转到主机&gt;扩展程序,然后点击添加扩展程序。完成向导,确保将扩展类型设置为Module(DNN中有许多不同类型的扩展)。
添加后,您将被带回模块扩展页面。向下滚动并找到您的模块扩展名。单击编辑,转到模块定义并添加具有有意义名称的模块定义。
示例:YourProjectNameMainView
您应该能够将(非常基本的)模块放在页面上并使用它!