1

실버 라이트 탐색 템플릿을 사용하여 새로운 실버 라이트 앱을 만들었습니다. 모두 잘되었고 잘 작동했습니다 :-)Silverlight : 탐색 앱 템플릿 - 클리너 URL을 사용할 수 있습니까? 그리고 asp.net MVC/라우팅 같은 URL이 있습니까?

URL은 aspx의 확장자를 가지고 있습니다 ... 우리는 asp.net MVC가 수행 한 것처럼 제거 할 수 있습니까? 이 페이지의 이름을 추가하는 방법을 내가 이상한 발견

SilverlightApplication1TestPage.aspx 

다음 일은 내가 그것 또한 ASP처럼 (이 작업을 수행하는 것이 더 자연스러운 것이라고 생각 때문에

SilverlightApplication1TestPage.aspx#Home 

처럼 # 기호를 사용합니다. 순 MVC는

 SilverlightApplication1TestPage/Home 

    SilverlightApplication1TestPage/About 

이 어떤 종류의 주변 업무의 종류 또는 업데이트 tamplete가) 수행

아니면 그럴 수 없습니까? 내가 여기 Asp.Net MVC와 실버 라이트를 사용하고있어

감사

답변

0

감사 의견 모두, 그것은 나를 생각하고 있어요 ... 그리고 나는 그것을 해결 한 생각 .. 그리고 asp.net 4.0 라우팅 ...

은 ASP에 전역 파일 추가를 사용하여 솔루션을 발견했다. 그물 프로젝트 다음이 응용 프로그램을 시작에 추가

// Code that runs on application startup 
     RouteTable.Routes.MapPageRoute("SilverlightRoute", 
     "MyApp", 
     "~/SilverlightApplication1TestPage.aspx"); 
1

은 샘플 URL입니다 : http://localhost:37920/#/AdvancedSearch. 내가 똑바로 Asp.Net을 사용하고 있었을 때 나는 그 안에 .aspx 파일을 가지고 있었다. 그것은 아직도 당신이 정말로 원하는 것이 아니라 아마도 당신을 가까이에있게 할 것입니다.

+0

+1 매우 실용적인 솔루션입니다. – AnthonyWJones

1

결론은 다음과 같습니다. 단순화하기 위해 #에 들어가기 전에 URL에있는 모든 것은 서버에 속하며, # 이후의 모든 것은 클라이언트에 속합니다.

Silverlight 응용 프로그램은 서버의 관점에서 완전히 단일 URL (페이지)로 존재합니다. Silverlight 탐색 프레임 워크를 사용하면이 단일 HTML 페이지 내의 응용 프로그램 내에서 이동하게됩니다.

#을 제거하면 서버로 가져온 결과가 기존 페이지를 대체하지만 현재 SL 앱은 언로드되어 결과 콘텐츠로 대체됩니다. 콘텐츠가 동일한 SL 응용 프로그램이지만 다른 컨텍스트로 지정된 경우에도 응용 프로그램을 언로드하고 다시로드합니다.

use #은 브라우저 탐색 내역에서 Silverlight 앱 내에서 탐색하기위한 수단 일뿐입니다. 브라우저가 소유 한 뒤로 버튼은 사용자를 놀라게하지 않는 방식으로 작동합니다.