使用CommandArguments在DNN中的Response.Redirect

时间:2012-01-15 08:52:54

标签: asp.net dotnetnuke response.redirect

我在ASCX文件中有一个代码为

的图像按钮
<asp:ImageButton ID="ImageButtonEdit" runat="server" CommandArgument='<%#Eval("ItemID") %>' ImageUrl="~/images/edit.gif" OnClick="ImageButtonEdit_Click" />`

后面的代码是

protected void ImageButtonEdit_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
    ImageButton editing = (ImageButton)sender;
    Response.Redirect(Globals.NavigateURL(PortalSettings.ActiveTab.TabID, "AddCollectionItem", "mid=" + this.ModuleId) + "?ID=" + Convert.ToInt32(editing.CommandArgument));
}

问题是它没有重定向到页面或任何其他东西? Response.Redirect当我尝试使用它时,它通常只在这部分工作,而在其他网站中它运作良好

1 个答案:

答案 0 :(得分:2)

您正在尝试传递一个包含两个?的URL,这可能会导致部分问题。你的第二个论点是?ID =应该是“&amp; ID =”

protected void ImageButtonEdit_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
    ImageButton editing = (ImageButton)sender;
    Response.Redirect(Globals.NavigateURL(TabID, "AddCollectionItem", "mid=" + this.ModuleId + "&ID=" + Convert.ToInt32(editing.CommandArgument)));
}

您也可以在NavigateURL内部而不是在NavigateURL之外传递。

如果您的模块从PortalModuleBase正确继承,则不需要PortalSettings.ActiveTab.TabID,只需直接调用TabID即可。

另外,您是否正在更新面板中执行此操作?也许这会导致重定向问题?