在DNN中可以添加一個ModuleAction
菜單項。根據DNN網站上的this article,甚至可以在服務器端進行一些額外的處理。將代碼轉換爲C#後,ActionHandler
永遠不會被調用。DotNetNuke ModuleAction服務器端處理
這是我的代碼:
public ModuleActionCollection ModuleActions
{
get
{
ModuleActionCollection Actions = new ModuleActionCollection();
ModuleAction urlEventAction = new ModuleAction(ModuleContext.GetNextActionID());
urlEventAction.Title = "Action Event Example";
urlEventAction.CommandName = "redirect";
urlEventAction.CommandArgument = "cancel";
urlEventAction.Url = "http://dotnetnuke.com";
urlEventAction.UseActionEvent = true;
urlEventAction.Secure = DotNetNuke.Security.SecurityAccessLevel.Admin;
Actions.Add(urlEventAction);
return Actions;
}
}
private void MyActions_Click(object sender, DotNetNuke.Entities.Modules.Actions.ActionEventArgs e)
{
DotNetNuke.UI.Skins.Skin.AddModuleMessage(this, string.Format(Localization.GetString("ClickMessage", LocalResourceFile), e.Action.CommandName), ModuleMessage.ModuleMessageType.BlueInfo);
switch (e.Action.CommandName.ToUpper())
{
case "REDIRECT":
if (e.Action.CommandArgument.ToUpper() != "CANCEL")
{
Response.Redirect(e.Action.Url);
}
else
{
DotNetNuke.UI.Skins.Skin.AddModuleMessage(this, "Canceled the Redirect", ModuleMessage.ModuleMessageType.YellowWarning);
}
break;
}
}
,並在頁面初始化附上事件處理程序:
AddActionHandler(new ActionEventHandler(MyActions_Click));
我也嘗試在網頁加載安裝由DNN源本身來完成。 顯示菜單項並執行到http://dotnetnuke.com的重定向。 但我的斷點MyActions_Click
從未被擊中。
我在做什麼錯?
我在DotNetNuke 7.1中運行,模塊引用DNN 6.2。
嘿利,清除了緩存,重新啓動應用程序池,重置IIS,沒有任何幫助。我用'IPostBackEventHandler'發現了另一種方式,但喜歡使用DNN方式,它具有更多功能... – jerone