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! =。=