在Silverlight 4导航中是否存在“locate.replace()”的模拟?

时间:2010-10-30 03:58:33

标签: c# .net silverlight silverlight-4.0 navigation

如果用户导航到显示“添加项目”视图的页面(#/ items / add),我希望在他们保存项目后点击“返回”时基本跳过该网址。

我该怎么做?

以下是我更详细的行为......如果用户已导航并且当前正在使用此silverlight网址:

#/项目/列表

当他们点击“添加”按钮时......他们会导航到

#/项目/添加

保存后,他们会被导航到

#/ items / 99 (其中99是新的商品ID。)

当他们从这里点击后退按钮时,我希望他们回到

#/项目/列表

1 个答案:

答案 0 :(得分:0)

我能够通过处理Frame的Navigating事件并在处理程序的主体中执行类似的操作来跳过特定的URL:

if (SomehowDecideToSkipThisOne(e))
{
    e.Cancel = true;
    Frame.StopLoading();
    Frame.Navigate(uriToRedirectTo);
}

然而,问题在于如何实现SomehowDecideToSkipThisOne,因为根据MSDN,"Any navigation request that the user initiates through a Web browser (including using the back or forward button of the Web browser) is represented as a New type of navigation."

因此,当用户点击浏览器上的后退按钮时,我无法知道用户何时实际“回来”。所以,现在我想我会决定跳过这个功能的使用,特别是因为我不需要它用于搜索引擎优化。我只是觉得这对我的内网应用来说只是一个很好的增强。虽然在这种情况下很难正确支持。