用热毛巾和 durandal 连接到另一个控制器

2024-01-29

我正在开发一个带有多个 spa 的 mvc4 应用程序。

我正在为我的水疗中心使用热毛巾模板。

我想要做的是在我的视图中为水疗中心添加一个锚链接,转到另一个控制器的索引操作,以便我的用户可以退出一个水疗中心并打开另一个水疗中心。并非所有操作都会启动 spa,有些是常规的 mvc 样式页面。

我在我的 spa html 页面中放置了如下代码:

<a href="/controller/action">Navigate to another controller</a>

这将更改浏览器中的 url,但始终会重新加载 spa 的默认 html 页面。如果我点击浏览器中的刷新按钮,那么将会转到正确的页面。

我已经能够将目标放在 _parent 或 _top 的锚标记上,如下所示:

 <a href="/controller/action" target="_parent">Navigate to another controller</a>

它将导航到新的控制器页面。

我相信 durandal 框架中的某些内容阻止了水疗中心导航到第二个控制器,但由于我刚刚开始使用它,所以我对需要更改的内容感到困惑。我认为应该有比在锚标记中使用目标更好的方法,或者说这是最好的选择。


我希望我正确理解了你的意思。我相信这种行为是由我的 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;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用热毛巾和 durandal 连接到另一个控制器 的相关文章

随机推荐