2009-12-04 4 views
0

Приложение My Silverlight, использующее структуру навигации, имеет очень красивые окончания своих URL-адресов из-за использования отображения URI, которое оно делает. Но передняя часть все еще выглядит противно, как:Как изменить перед URL в приложении Silverlight Navigation?

http://server:port/SilverlightPage.aspx#/uri-mapped-portion 

Как я могу получить «SilverlightPage.aspx #» часть, чтобы выглядеть лучше, предпочтительно удаляя «.aspx #»?

ответ

2

Вы можете использовать URL маршрутизации, которая доступна как часть ASP.NET MVC или обычной ASP.NET http://msdn.microsoft.com/en-us/library/cc668201.aspx

Edit: Для того, чтобы ответить ваш вопрос в комментарии:

Я не работал с этим сам, но если вы посмотрите раздел «Использование маршрутизации с помощью WebForms», он должен объяснить его подробно. Из того, что я собираюсь, вы можете использовать

routes.Add("SomeRoute", new Route("SilverlightPage",new CustomRouteHandler("~/SilverlightPage.aspx"))); 
+0

Спасибо, но как бы выглядела строка маршрутизации в этом случае? – Dov

1

Вы можете использовать страницу по умолчанию вместо SilverlightPage так, что это было бы просто:

http://server:port/#/uri-mapped-portion

Другой способ получить красивее страниц использовать что-то вроде ASP.NET MVC, который имеет довольно URLs также , Тогда вы могли бы иметь что-то вроде:

http://server:port/Silverlight/App1/#/uri-mapped-portion

+0

Но даже с любым из этих методов не существует способа избавиться от «#»? – Dov

+1

# важно, потому что это означает, что вы можете изменить URL-адрес без перезагрузки страницы. Это трюк, который использует такие компоненты, как Silverlight, для изменения URL-адресов без перезагрузки страницы. # Оценивается только на стороне клиента, поэтому это работает. – Bryant

+0

Хммм, я попробовал ваше первое предложение, так как это проще всего, но теперь я все еще вижу Default.aspx # в URL-адресе. Теперь я понимаю, почему # есть, но как насчет «Default.aspx»? Является ли это строго следствием запуска его с сервера разработки ASP.NET, и он не появится, когда я пошлю его на сервер IIS с честным успехом? – Dov