【问题标题】:Redirecting in multiple projects in one solution在一个解决方案中重定向多个项目
【发布时间】:2013-07-18 08:54:55
【问题描述】:

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

http://localhost:5243/WebpageA.aspx

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

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

【问题讨论】:

    标签: c# asp.net .net


    【解决方案1】:

    要重定向,我建议在您的应用设置中添加一个设置,指定项目 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"]。然后在项目 2 中使用Session["Variable"] = Request.QueryString["Variable"]; 获取它。


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

    【讨论】:

    • 哇,答案很好。非常感谢您的清晰,彻底的解释!非常感谢您的帮助!
    【解决方案2】:
    Response.Redirect("~/Numbers.aspx") 
    

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

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

    【讨论】:

    • 感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多