0

我正在試驗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。目前,這似乎並不奏效。

有什麼想法?

回答

0

我通常會等待答案,但我發現這個問題有點兒檸檬。爲了讓Silverlight應用程序接收URI路由,您需要在託管SL的頁面中使用具有特定ID的iframe

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

我不知道這是爲什麼不提及任何地方,可以很容易地看到,但顯然錯過了,因爲如果你使用Silveright導航項目模板,這會已經自動爲你添加。

好一個MS! =。=