0

我正在试验 Silverlight (4.0) 导航和深度链接。我现在面临的问题是我的 Silverlight 应用程序托管在 MVC 视图页面 (.cshtml) 中,如下所示,这是相当标准的。

<object id="SilverlightAdvanceAdminObject" data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
        <!-- omitted for brevity -->
</object>

在这个阶段,我的 URI 是由 MVC 路由的,所以我会有一个管理控制器,它有一个高级操作,它反过来返回上面的视图。

例如。http://localhost/Admin/高级

从现在开始,我希望 MVC 允许我执行 Silverlight 导航以“深层链接”到我的 SL 应用程序内的视图中。

例如。http://localhost/Admin/Advanced#/Users

Uri 映射器:

<sdk:Frame region:RegionManager.RegionName="MainRegion">
    <sdk:Frame.ContentLoader>
        <prism:FrameContentLoader RegionName="MainRegion" />
    </sdk:Frame.ContentLoader>
    <sdk:Frame.UriMapper>
        <sdk:UriMapper>
            <sdk:UriMapping Uri="" MappedUri="/UserAdminView" />
            <sdk:UriMapping Uri="/{viewName}" MappedUri="/{viewName}" />
        </sdk:UriMapper>
    </sdk:Frame.UriMapper>
</sdk:Frame>

上面的示例是我想要实现的,其中 URI 的用户组件是我的 SL 应用程序中的一个视图,它由 UriMapper 管理。目前,这似乎不起作用。

有什么想法吗?

4

1 回答 1

0

我通常会等待答案,但我发现这个问题有点像柠檬。为了让 Silverlight 应用程序接收 URI 路由,您需要将一个iframe具有特定 id 的名称添加到托管 SL 的页面中。

<iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe>

我不知道为什么在任何容易看到的地方都没有提到这一点,但显然错过了,因为如果您使用 Silveright Navigation 项目模板,它会自动为您添加。

好一个MS!=.=

于 2011-10-06T06:57:08.103 回答