我正在开发一个带有多个spa的mvc4应用程序。
我正在使用我的水疗中心的热毛巾模板。
我想要做的是在我的spa视图中有一个锚点链接转到另一个控制器的索引操作,因此我的用户可以退出一个spa并打开另一个。并非所有操作都会启动spa,有些是常规的mvc样式页面。
我在我的spa html页面中输入了如下代码:
<a href="/controller/action">Navigate to another controller</a>
这将更改浏览器中的网址,但始终会重新加载水疗中心的默认html网页。如果我点击浏览器中的刷新按钮,那么是否会转到正确的页面。
我已经能够将目标放在_parent或_top的锚标签上,如:
<a href="/controller/action" target="_parent">Navigate to another controller</a>
,它将导航到新的控制器页面。
我相信这是在durandal框架中阻止水疗中心导航到第二个控制器的东西,但由于我刚刚开始使用它,我感到困难,因为我需要改变。我认为应该有比在锚标签中使用目标更好的方法,或者这是最好的选择。
答案 0 :(得分:5)
我希望我能正确理解你。我相信这种行为是由我的Sammy.js(durandal路由器目前所基于的)引起的。 Sammy的默认行为是劫持所有链接并根据SPA本身处理它们。
我不喜欢我正在处理的网站的这种行为,并且需要在SPA内链接到其他MVC网页。我真正想要的是定期链接到工作和哈希链接,被解释为SPA中另一个视图的链接。因此'/ controller / action'将转到另一个网页,'#moduleId'将转到另一个durandal V / VM。
我发现这个适用于我的Sammy选项并将其设置在我的main.js
中 // This stops Sammy from hijacking regular links
Sammy.Application.prototype.disable_push_state = true;