Asp.net mvc 4 使用热毛巾和durandal连接到另一个控制器

Asp.net mvc 4 使用热毛巾和durandal连接到另一个控制器,asp.net-mvc-4,durandal,hottowel,Asp.net Mvc 4,Durandal,Hottowel,我正在开发一个带有多个spa的mvc4应用程序 我正在使用热毛巾模板进行水疗 我想做的是在我的视图中为一个spa设置一个锚链接,然后转到另一个控制器的索引操作,这样我的用户就可以退出一个spa并打开另一个spa。并非所有操作都会启动spa,有些是常规mvc样式的页面 我在spa html页面中添加了如下代码: <a href="/controller/action">Navigate to another controller</a> 这将更改浏览器中的url,但始

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

我正在使用热毛巾模板进行水疗

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

我在spa html页面中添加了如下代码:

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

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

我已经能够在“家长”或“家长”的锚定标签上设置目标,如:

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

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


我相信是durandal框架中的某些东西阻止了spa导航到第二个控制器,但由于我刚刚开始处理这个问题,我被难住了,因为我需要改变什么。我认为应该有比在锚定标记中使用目标更好的方法,或者这是最好的选择。

我希望我正确地理解了您的意思。我相信这种行为是由我的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;

我是一个MVC站点,多个SPA不再是一个SPA,而是一个MVC应用程序?你不仅仅是想制造一辆方轮汽车吗?我拉下了durandal初学者工具包,添加了welcome.html页面的锚链接,使用目标作为“家长”和“顶部”,导航对我来说很好。你能提供你的全部代码吗?Evan,当我添加_parent或_top时,导航也适用于我。也许我的问题不清楚,有没有更好的方法来处理这种情况,而不是使用目标作为“父”或“顶”。@davethecoder最终用户应用程序和管理界面,因为它可以作为两个独立的界面来构建,不是吗?这正是我需要的。非常感谢。