在一个解决方案中重定向多个项目

在我的C#Web应用程序中,我在一个解决方案中有两个不同的项目(“Project1”和“Project2”)。 在“Project1”中,我有一个带有按钮的网页,在OnClick事件中,我试图捕获会话变量并重定向到“Project2”中名为“Numbers.aspx”的网页。 我将“Project1”设置为包含“Project2”作为依赖项,“Project1”是启动项目。 当我运行“Project1”时,它会转到以下URL:

http://localhost:5243/WebpageA.aspx 

当我将“Project2”设置为启动项目并运行它时,它将转到以下URL:

 http://localhost:5571/Numbers.aspx 

在我写的“Project1”中:

 Response.Redirect("~/Numbers.aspx"); 

它说路径无效。 我也尝试了以下路径,它说它不存在:

  Response.Redirect("~/Project2/Numbers.aspx"); 

有没有人有任何建议如何重定向到不同项目中的此网页并从Project1捕获会话变量? 谢谢!

  //OnClick event protected void click(object sender, EventArgs e) { Session["Variable"] = textBoxName.Text; } 

要重定向,我建议在您的应用设置中添加一个设置,指定Project 2的主机:

    

现在进行重定向,你可以写:

 Response.Redirect(Request.Url.Scheme + "://" + ConfigurationManager.AppSettings["Project2Host"] + "Numbers.aspx"); 

这样,当需要部署到服务器时,您可以(希望)通过简单地将web.config中的“Project2Host”设置更改为“MyServer.com/Project2”或其他任何内容来轻松连接它。


对于第二部分,转移会话变量,也许您可​​以将其作为查询字符串传递? 重定向到目标URL加上"?Variable=" + Session["Variable"] 。 然后使用Session["Variable"] = Request.QueryString["Variable"];在项目2中选择它Session["Variable"] = Request.QueryString["Variable"];


作为脚注:如果您计划在两个站点之间共享数据,我会考虑将它们设置为同一Web应用程序项目下的单独文件夹/虚拟目录。

 Response.Redirect("~/Numbers.aspx") 

表示框架在project1的范围内搜索Number.aspx。 这意味着从Project1的根文件夹开始,搜索Numbers.aspx。

您需要做的是在IIS中为Project2创建一个虚拟目录,并提供该路径的链接。