Silverlight导航框架在导航时未改变地址栏(不显示井号)。

3
我正在使用导航框架,基本上有一个用于导航的框架。我尝试更改mainFrame.JournalOwnership,因为我认为更改它可能与此有关,但是没有任何变化。由于与导航相关的类结构相当小,我在这里有点困惑,因为我想不到其他可以更改以使导航工作的事情。我没有使用导航模板,我像这个视频教程中一样自由使用http://www.silverlight.net/learn/videos/all/navigation-framework/,如果有人想知道的话。提前感谢您的帮助。我真的很苦恼,请帮忙。我已经尝试使用主页面来复制错误,并调用简单的导航到空测试页面,它可以正常工作,所以我现在有了新的问题。也许我的SL页面HTML禁用了导航框架设置的哈希标签?编辑:我已经测试了将可工作的测试XAP放在我的HTML页面上,而不是整个应用程序,它没有更新该页面上的哈希标签。所以现在很明显HTML页面出了问题,可能是什么呢?

我已经尝试了IE和Chrome,结果相同。 - Valentin Kuzub
2个回答

0
设置JournalOwnership = JournalOwnership.OwnsJournal的行为告诉SL导航历史记录在其他地方维护。换句话说,用于跟踪历史记录的较小URL更改不再被使用。请记住,在SL导航应用程序中导航框架不会移动页面,但它会更新URI书签#以非常类似AJAX维护历史记录的方式来维护状态。如果您的SL应用程序真正“离开页面/ URI”,那么您的应用程序将必须完全重新加载。无论您是使用导航模板还是现在,它都按照规定工作。更改“框架”实际上只是加载UserControl类型并将内容放入现有SL控件的区域。

它不更新标签,我说没有更改,我的意思是地址保持不变,根本没有显示#,只有托管Silverlight(示例名称)的index.aspx页面。我知道更改框架会在其他控件中加载控件,但除此之外,它应该更新地址栏的标签,但它没有。所以问题是如何使其实现?在哪里查找? - Valentin Kuzub
我从未说过它会更新 Hash 标签。不确定你是否没有理解我上面所说的。设置 OwnsJournal 意味着没有 Hash 标签更改。这就是您使用此设置指定的内容。取消设置或不设置它。 - Keith Adler
既然没有东西更新标签,可能我不理解 OwnsJournal 应该如何工作,但无论是否设置了 OwnJournal,它都不会更新标签。 - Valentin Kuzub
好的,我想你是对的,它应该在默认自动模式下工作并更新标签,但它没有。 - Valentin Kuzub

0
最终找到了问题所在。 原来关键在于Silverlight使用iframe进行此操作,经过我在aspx页面中添加以下代码后,它就像魔术一样开始工作了。
<iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe>

如下所述:http://msdn.microsoft.com/en-us/library/cc838245(VS.95).aspx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接