Silverlight导航+ MVC路由

Silverlight导航+ MVC路由

问题描述:

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

<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

乌里映射器:

<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应用程序接收URI路由,您需要在托管SL的页面中使用具有特定ID的iframe

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

我不知道这是为什么不提及任何地方,可以很容易地看到,但显然错过了,因为如果你使用Silveright导航项目模板,这会已经自动为你添加。

好一个MS! =。=