2010-07-13 4 views
1

데이터베이스에서 동물을 작성하려고합니다. 보기 페이지를 만드는 데 표시되는 모든 샘플에는 URL에 하드 코드 된 "노드"가 있습니다. 첫 번째 작품을 볼 수는 있지만 두 번째 작품은 올바른 URL을 쓰지 않아 세 번째 작품으로 이동합니다. 따라서, 예를 들어, 내 URL이되고 싶어 :VB.NET MVC보기에서 URL을 만들 때 문제가 발생했습니다.

> routes.MapRoute(_ 
>    "Default", _ 
>    "{controller}/{action}/{id}", _ 
>    New With {.controller = "Home", .action = "Index", .id = 
> UrlParameter.Optional} _ 
>  ) 

첫 번째 URL이 위대한 작품을 내가 함께 처음에 동물의 그룹을 나열 할 수 있습니다

/animals/ 
/animals/canines/ 
/animals/canines/schnauzer 

내가 기본 경로 설정을 두 번째 URL에 대한 올바른 링크가 있어야합니다. 나는 다음과 같은 것을 수행

for each animal in model 
    Html.ActionLink(animal.animal_name,animal.animal_name.Trim) 
next 
가 나는 또한 두 번째에 기입 해지는 개 그룹을 얻을 수 있습니다 (그래서 난 내 모델이 작동 알고있다), 그러나 그 두 번째 "송곳니"페이지의 URL.Action가 손실

" 내가 포함 링크를 작성하는 내가 생각할 수있는 모든 방법을 시도했습니다

/animals/schnauzer 

:로 URL의 송곳니는 "그래서 렌더링

<a href="<%= url.action(canine.dog_name.Trim)) %>"> 
<a href="<%= Url.Content("~" & url.action(canine.dog_name.Trim)) %>"> 

및 기타 가치가있는 것은 아닙니다. ;-D

... 나는 길 경로에서 뭔가 빠져있는 것 같지만 그게 무엇 이니? URL을 작성하려면 모든 페이지의 경로를 알아야 할 필요가 없습니다.

미리 도움 주셔서 감사합니다.

답변

0

구성된 경로는 컨트롤러, 동작 및 ID라는 세 가지 구성 요소를 찾습니다. case/animals/schnauzer에서 HTTP 라우팅 (및 링크 생성)과 관련하여 단일 경로 요소 이상을 찾고 있습니다. 그것은/동물/견치를 두 가지 다른 값으로 간주합니다. 당신은로 지정, http://yoursite/Family/Species 같은 경로를 허용하고자하는 경우 : 후 모든 것을 직접

public ActionResult Animals(string family, string species){...} 

또는 사용 와일드 카드 경로를

routes.mapRoute("familyspecies", "animals/{family}/{species}", new { controller = "Home", action = "Animals", Species = UrlParameter.Optional}); 

을하고 행동에 가족과 종을 통과 id에 대한 액션

routes.MapRoute("{controller}/{action}/{*id}"); 
관련 문제