Есть ли аналог "locate.replace ()" в Silverlight 4 Navigation? - PullRequest
0 голосов
/ 30 октября 2010

Если пользователь переходит на страницу, которая отображает представление «Добавить элемент» (# / items / add), я хочу пропустить этот URL, когда он нажимает «назад» после сохранения элемента.

Как я могу это сделать?

Вот поведение, за которым я следую, более подробно ... если пользователь перешел к этому URL-адресу silverlight и в данный момент использует его:

# / items / list

когда они нажимают кнопку «добавить» ... они переходят на

# / items/ добавить

после сохранения они перемещаются в

# / items / 99 (где 99 - этоновый идентификатор элемента.)

Когда они нажимают здесь кнопку "Назад", я хочу, чтобы они вернулись обратно к

# / items / list

1 Ответ

0 голосов
/ 30 октября 2010

Мне удалось пропустить конкретный URL, обработав событие Navigating в Frame и выполнив что-то подобное в теле обработчика:

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

Однако проблема заключается в том, как реализовать SomehowDecideToSkipThisOneпоскольку согласно MSDN, «Любой запрос навигации, который пользователь инициирует через веб-браузер (включая использование кнопки« назад »или« вперед »веб-браузера), представляется как новый тип навигации.»

Поэтому я не могу знать, когда пользователь на самом деле возвращается «назад», когда он нажимает кнопку «Назад» в своем браузере.Итак, теперь я думаю, что я решу пропустить использование этой функции, тем более что она мне не нужна для SEO.Я просто подумал, что это будет хорошим дополнением для моего приложения в интрасети.Слишком сложно поддерживать должным образом, хотя в этом сценарии.

...