2016-06-15 2 views
0

내가이 URL 링크를 만들려고하고 actionlink :면도기 URL은

mysite.com/Vote/2/Learn-to-code 

경우 영역 = 투표, ID = 2, topicURL = 알아보기 - 투 - 코드

내 라우팅, 나는 이 URL 패턴을 처리하도록하십시오 :

context.MapRoute(
       "Topic", 
       "Vote/{id}/{topicURL}", 
       new { controller = "Topic", action = "TopicAnswers" }, 
       new[] { "eus.UI.Areas.Vote.Controllers"} 
      ); 

그러나 URL 링크를 생성하는 데 문제가 있습니다. 내 시도는 다음과 같습니다.

@Html.ActionLink("ViewBag.TopicTitle", "TopicAnswers", new { area = "Vote", controller = "Topic", id = ViewBag.TopicId, topicURL = @ViewBag.TopicURL }) 

첫 번째 질문은 다음과 같습니다. ViewBag.TopicTitle은 어떻게 사용합니까? 따옴표를 제거하면 빨간색으로 구불 구불하게 오류가 발생합니다. 따옴표를 달아 앱이 어떤 URL을 생성하는지 확인할 수 있습니다.

몬스터 URL을 생성합니다.

mysite.com/Vote/Topic/TopicAnswers/2?url=Learn-to-code 

그러나 URL은 실제로 작동합니다. 그러나 나는 짧고 깨끗한 찾고있는 URL을 만들고 싶습니다.

mysite.com/Vote/2/Learn-to-code 

유용한 정보, gracias.

답변

0

좋아, 내가 해냈어. 이것은 읽기 쉽고 이해하기 쉽습니다.

<a href="/Vote/@ViewBag.TopicId/@ViewBag.TopicURL">@ViewBag.TopicTitle</a> 

@ Html.ActionLink (...)를 사용해야하는 이유가 있습니까? 스파게티 같은 느낌.

처음에는 매개 변수 ("텍스트", 액션, 컨트롤러)를이 순서로 배치하는 이유는 무엇입니까? 그것은 그런 twisty 경로입니다. 이것은 생각하는 것이 훨씬 자연 스럽습니다 : (컨트롤러, 액션, "텍스트") ... 그렇지 않습니까?