2012-04-16 3 views
0

좋아요, MVC 3 라우팅 질문/답변의 대표 샘플을 살펴본 결과 질문의 80 %에 답변했습니다. 좋은 일이지만, 지금 가장 어려운 부분은 해결되지 않은 상태로 남아 있습니다. 내가 할 수있는 MVC 3 라우팅 혼성

routes.MapRoute(
    "Location", 
    "Location/{id}", 
    new { controller = "Location", action = "Details", id = System.Guid.Empty } 
); 
: 내 세계에서

, 나는 URL의 로컬 호스트/위치/가이 드

내가 내 기본 경로 이전에 입력 한이 경로의 기반으로, 좋은 작품이 내가 원하는 위치에 대한 Guid를 전달하지만, 그것은 오른쪽 아래에 있습니다. 주소 표시 줄에 표시된 URL을보고 페이지 내에서 링크 된 URL을보고 싶습니다. localhost/Location/Paris

분명히 매개 변수를 문자열로 변경하고 "Paris"를 전달할 수는 있지만 내가 데이터베이스를 파리, 프랑스가 아닌 파리, 텍사스가 Guid의 사용없이 원한다는 것을 이해하도록하는 방법을 이해하지 못한다.

이 문제에 대한 실질적인 도움이 필요합니다. 즉각적인 문제를 해결할뿐만 아니라 일반적으로 라우팅을 더 잘 이해할 필요가 있습니다. 나는 내 필요를 충족시키기에 충분하다고 생각했지만 분명히 그렇지 않습니다.

미리 감사드립니다.

답변

2

파리, 프랑스 및 파리, TX간에 명확성을 위해 URL에 무엇인가 입력해야합니다.

  1. 당신은/위치/{국가}/{지역}/{도시} '`으로 경로 패턴을 설정할 수 있습니다, 또는 당신이 당신의 응용 프로그램
  2. 그 위치 슬러그를 사용 가능한 모든 위치를 slugify 수 : /Location/{locationSlug}. '파리'라는 이름의 위치가 여러 개있는 경우 해당 위치를 슬라 이징하고 끝에 자동 증분 #을 추가합니다 (예 :/Location/paris,/Location/paris-1,/Location/paris-2). 또는 지역/도시/국가 정보를 슬러그에 추가하여 # 대신 구별 할 수 있습니다.
  3. ID가있는 곳에서 오버플로 질문 스타일을 스택 한 다음 위치 슬러그를 스택에 넣습니다. GUID를 정수로 변환하거나 매핑 할 수 있다면 패턴이 다음과 같아 지므로 더 명확하고 간결 해 보입니다. Location/{id}/{locationSlug} (예 :/Location/1245/paris).
+0

나는 이드 다음에 의미없는 설명자를 추가하는 것을 생각하지 않았다. (예,이 사이트를 사용하더라도) –

+0

많은 인기 사이트는 # -at-the-end-append 일을합니다. Wikipedia, Yelp 등이 있습니다. –