我在 Visual Studio 2012 的一个解决方案中有两个 ASP.NET MVC 4 项目。我将解决方案设置为使用多个启动项目,并将操作设置为启动。当我单击“开始”工具栏按钮时,每个项目都会在不同的 Internet Explorer 浏览器窗口中启动。
但我希望这两个项目从单个浏览器实例的两个选项卡开始。有没有办法做到这一点?
谢谢!
我在 Visual Studio 2012 的一个解决方案中有两个 ASP.NET MVC 4 项目。我将解决方案设置为使用多个启动项目,并将操作设置为启动。当我单击“开始”工具栏按钮时,每个项目都会在不同的 Internet Explorer 浏览器窗口中启动。
但我希望这两个项目从单个浏览器实例的两个选项卡开始。有没有办法做到这一点?
谢谢!
我知道这样做的唯一方法是:
在您的一个项目中添加一个简单的视图,其中的 html 基本上是空的。将该项目设置为启动简单视图作为其启动页面,并将其他项目设置为“不打开页面,等待请求”。
在该空视图的 head 部分中,添加以下 javascript 脚本部分:
<script>
// to open another project in a newtab (works in IE)
window.open('http://localhost:<otherprojectport>/otherprojectpage', 'tab1');
// As many of these as you like as well, to open other actions/pages from this project:
window.open('@Url.Action("Edit", "User", new { id=1 })', 'tab2'); // note different name
// and to open a third page in the original tab that opens:
document.location.href = '@Url.Action("Index", "User")';
</script>
到目前为止,这是我发现的唯一方法,而且无论如何我发现编辑单个视图比编辑多个项目属性页更容易更改打开的选项卡。
您可能必须告诉您的浏览器您的网站可以打开弹出窗口。为此,只需在document.location
您第一次运行它时排除该行,它会告诉您它阻止了一个弹出窗口,因此您可以为您的站点“始终允许它们”。
脚注
如果您还想使用 chrome 启动器,我发现的唯一解决方案是执行上述操作,但使用扩展程序(例如“一个窗口”,我不认可,也不声称是安全的,如果如果您使用它,您的计算机就会离开家)以停止将页面加载为单独的弹出窗口。