Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用asp.net将对象传递到其他页面_C#_Asp.net_Object_Parameters - Fatal编程技术网

C# 使用asp.net将对象传递到其他页面

C# 使用asp.net将对象传递到其他页面,c#,asp.net,object,parameters,C#,Asp.net,Object,Parameters,我试图使用将对象从一个页面传递到另一个页面,但没有成功。我试图调用一个C方法并将该对象放入会话,但后来我意识到不能使用调用方法。然后我考虑使用,但是我需要在一个新窗口中打开新网页 我怎样才能把这件事做好呢?还有其他好的选择吗?将对象添加到会话中,然后重定向到新页面。在新页面中,检查对象的会话变量 然后我考虑使用,但后来我需要 在新窗口中打开新网页 您不需要打开新窗口。。。将此添加到服务器端LinkButton处理程序: <asp:LinkButton id="btnYourLinkButt

我试图使用
将对象从一个页面传递到另一个页面,但没有成功。我试图调用一个C方法并将该对象放入会话,但后来我意识到不能使用
调用方法。然后我考虑使用
,但是我需要在一个新窗口中打开新网页


我怎样才能把这件事做好呢?还有其他好的选择吗?

将对象添加到
会话中,然后重定向到新页面。在新页面中,检查对象的
会话
变量

然后我考虑使用
,但后来我需要 在新窗口中打开新网页

您不需要打开新窗口。。。将此添加到服务器端
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");
}

或者,您可以向click方法添加一个ajax调用,以设置
会话
服务器端,然后根据ajax调用完成触发重定向。

任何web应用程序在本质上都是无状态的。对象仅在处理页面请求期间有效。使用ASP.Net等技术进行开发和应用时,对象检索的一般模式是将标识符作为表单post数据或查询字符串的一部分发送,然后使用此标识符重新加载上一页post/请求之前正在处理的对象

可以向会话中添加对象,并按照此处其他答案中的建议检索它们,但这种方法存在一些问题,例如会话超时、可伸缩性等


如果你想就你想做的事情的性质提供更多的细节,那么就更容易给你一个更完整的答案或建议如何解决你的特定问题。

听起来很简单,但我需要调用一个方法,并确保我在会话中放置了正确的对象。如何调用一个方法并在新窗口中打开新页面。我正在尝试在不使用javascript的情况下执行此操作。您可以通过传递查询字符串参数来调用该方法,然后在新页面上的OnLoad事件中,检查参数,并在该方法存在时调用该方法。我有一个列表,根据他们单击的内容,我希望在新窗口中打开与该列表项相关的页面。我希望它在一个新窗口中打开,否则我会很容易地使用linkbutton和session来帮助完成这个任务。@Mowgli我在我的回复中添加了强制打开新窗口的内容。
ScriptManager.RegisterStartupScript(this, this.GetType(), "AUTOOPEN",
    "window.open('yourNewUrl.aspx', '_blank');", true);