silverlight3 navigation:Frame 导航问题

hwj383 2009-12-09 12:27:55
<navigation:Frame x:Name="ContentFrame" Style="{StaticResource ContentFrameStyle}" Source="/Home" Navigated="ContentFrame_Navigated" NavigationFailed="ContentFrame_NavigationFailed">
<navigation:Frame.UriMapper>
<uriMapper:UriMapper x:Name="urlMaper">
<uriMapper:UriMapping Uri="" MappedUri="/Views/Home.xaml"/>
<uriMapper:UriMapping Uri="/{pageName}" MappedUri="/Views/{pageName}.xaml"/>
<uriMapper:UriMapping Uri="/{pageName}/{hwj383}" MappedUri="/Views/{pageName}.xaml?Id={hwj383}"/>
</uriMapper:UriMapper>
</navigation:Frame.UriMapper>
</navigation:Frame>

在About页面有一个按钮:
this.NavigationService.Navigate(new Uri(String.Format("/New/{0}", new Random().Next()), UriKind.RelativeOrAbsolute));
但是提示Page Not Found (/New/123456)

如果输入
this.NavigationService.Navigate(new Uri("/New", UriKind.RelativeOrAbsolute));


这样就没问题.

谢谢.
...全文
457 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2009-12-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jv9 的回复:]
引用 3 楼 hwj383 的回复:
<uriMapper:UriMapping Uri="/{pageName}/{hwj383}" MappedUri="/Views/{pageName}.xaml?Id={hwj383}"/>

没有 /New/123456 这个页面,但是有 /New 对应的页面,上面我也映射了,123456时作为Id的参数的.....


你上面的使用方法不是传参,是指向页面。

详细navigation的操作,看看这些文章吧,这样不容易判断错误。

Silverlight导航应用程序Uri映射问题的分析与解决
http://silverlightchina.net/html/tips/2009/1209/361.html

有关Silverlight Navigation的研究
http://silverlightchina.net/html/tips/2009/1123/260.html

Silverlight 的导航框架与动态加载
http://silverlightchina.net/html/tips/2009/1209/362.html
[/Quote]


我只能说这种匹配方式相当诡异,好像在asp.net mvc 的route 不是这样的吧,和顺序是无关的吧....
jv9 2009-12-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hwj383 的回复:]
<uriMapper:UriMapping Uri="/{pageName}/{hwj383}" MappedUri="/Views/{pageName}.xaml?Id={hwj383}"/>

没有 /New/123456 这个页面,但是有 /New 对应的页面,上面我也映射了,123456时作为Id的参数的.....
[/Quote]

你上面的使用方法不是传参,是指向页面。

详细navigation的操作,看看这些文章吧,这样不容易判断错误。

Silverlight导航应用程序Uri映射问题的分析与解决
http://silverlightchina.net/html/tips/2009/1209/361.html

有关Silverlight Navigation的研究
http://silverlightchina.net/html/tips/2009/1123/260.html

Silverlight 的导航框架与动态加载
http://silverlightchina.net/html/tips/2009/1209/362.html
jv9 2009-12-09
  • 打赏
  • 举报
回复
你确认有这个页面么? “/New/123456”
如果是随机生成的数字,在程序中没有映射,自然找不到页面了。
「已注销」 2009-12-09
  • 打赏
  • 举报
回复
<uriMapper:UriMapping Uri="/{pageName}/{hwj383}" MappedUri="/Views/{pageName}.xaml?Id={hwj383}"/>

没有 /New/123456 这个页面,但是有 /New 对应的页面,上面我也映射了,123456时作为Id的参数的.....
xingjunli 2009-12-09
  • 打赏
  • 举报
回复
应该是页面地址的问题咯

8,731

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧