【问题标题】:Silverlight Navigation + MVC RoutingSilverlight 导航 + MVC 路由
【发布时间】:2011-10-06 05:11:59
【问题描述】:

我正在试验 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/Advanced

从现在开始,我希望 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 管理。目前,这似乎不起作用。

有什么想法吗?

【问题讨论】:

    标签: silverlight model-view-controller navigation prism deep-linking


    【解决方案1】:

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

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

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

    好一个MS! =.=

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-04
      • 1970-01-01
      • 2018-06-08
      • 2012-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多