响应.在Visual Studio中从一个web项目重定向到另一个
本文关键字:web 一个 项目 重定向 另一个 Visual Studio 响应 | 更新日期: 2023-09-27 17:50:08
我正试图将一个项目集成到预先存在的解决方案中。
解决方案中的启动项目名为"Foo"。它被写入虚拟路径"/csweb/"。当该项目启动时,它会加载/csweb/Default.aspx。这是当前未修改的主页。
我正在尝试重定向到不同项目中的不同主页。
我在解决方案中添加了第二个名为"Bar"的项目。在其项目属性下,我告诉它写入虚拟路径"/csweb/"。它没有标记为启动项目,也没有多个启动项目——只有Foo。当酒吧被标记为启动项目时,可以访问酒吧的主页。它的主页由localhost:port/csweb/Default.aspx 表示
我想重定向到Bar的Default.aspx,同时使用Foo作为启动项目。如果能让问题变得更容易的话,我可以将Bar的Default.aspx重命名为不含糊的名称。
如果我尝试HttpContext.Response.Redirect("~/Default.aspx")
,那么它显然会将我带到Foo/Default.aspx而不是Bar/Default.aspx,但浏览器中的url只是localhost:port/csweb/Default.aspx
。完全可以理解,没有迹象表明自己参与了一个项目。如果我将Bar/Default.aspx重命名为Bar/UniqueName.aspx并尝试HttpContext.Response.Redirect("~/UniqueName.aspx")
,则找不到该页面。
这里的正确呼叫是什么?我是否需要将Bar设置为IIS中预先存在的虚拟目录,以便指定更完整的路径名以避免歧义?或者,我需要对多个初创网站项目做一些花哨的事情才能访问它吗?
感谢您就这个令人困惑的问题提供任何建议。
编辑:我最终只是在Foo的项目中添加了另一个文件夹,并将Bar项目的内容移到了这个文件夹中。然后我就可以做HttpContext.Response.Redirect("~/Bar/Bar's Default.aspx")
了,不过我仍然很想听到比这更好的解决方案!
尝试HttpContext.Response.Redirect("/csweb/Default.aspx")
。当前重定向中的波浪号"~"表示在该应用程序的主文件夹中启动。通过删除它,您可以重定向到网站上的其他位置。
如果你愿意,你也可以完全限定重定向到一个完全不同的网站。