使用asp.net将对象传递到不同的页面

m0g*_*m0g 2 c# asp.net parameters object

我试图将一个对象从一个页面传递到另一个页面,<asp:hyperlink>但没有任何成功.我试图调用一个C#方法并将该对象放入一个会话,但后来我意识到你不能调用一个方法<asp:hyperlink>.然后我考虑使用,<asp:linkbutton>但后来我需要在新窗口中打开新的网页.

我怎样才能正确地做到这一点?还有其他好的选择吗?

Kel*_*sey 5

然后我考虑使用,<asp:linkbutton>但后来我需要在新窗口中打开新的网页.

您无需打开新窗口...将其添加到服务器端LinkButton处理程序:

<asp:LinkButton id="btnYourLinkButton" runat="server" 
    OnClick="btnYourLinkButton_Click">Test</asp:LinkButton>

protected void btnLogout_Click(object sender, System.EventArgs e)
{
    var someObject = GetYourDataWithSomeFunction();
    Session["YourData"] = someObject;  // saves to session
    Response.Redirect("yourNewUrl.aspx");
}
Run Code Online (Sandbox Code Playgroud)

这会将值存储Session在同一窗口中并重定向到新页面.

编辑:

如果您需要在新窗口中打开然后执行与上述相同的操作,而不是Response.Redirectwindow.openjavascript调用添加到您打开新窗口的页面:

ScriptManager.RegisterStartupScript(this, this.GetType(), "AUTOOPEN",
    "window.open('yourNewUrl.aspx', '_blank');", true);
Run Code Online (Sandbox Code Playgroud)

或者,您可以只为您的click方法添加ajax调用以设置Session服务器端,然后根据您的ajax调用完成触发重定向.