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

本文关键字:重定向 项目 解决方案 一个 | 更新日期: 2023-09-27 18:23:52

在我的C#Web应用程序中,我在一个解决方案中有两个不同的项目("Project1"answers"Project2")。在"Project1"中,我有一个带有按钮的网页,在OnClick事件中,我试图捕获一个会话变量并重定向到"Project2"中名为"Numbers.aspx"的网页。当我运行"Project1"时,它会转到以下网址:

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;
    }

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

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

<appSettings>
    <add key="Project2Host" value="localhost:5571/" />
</appSettings>

现在对于重定向,你可以写:

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中拾取它。


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

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

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

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