2016-06-15 3 views
0

Я пытаюсь создать эту ссылку URL:бритва URL ActionLink

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 (...). Это просто похоже на спагетти.

Для чего, почему они размещают параметры («текст», действие, контроллер) в этом порядке? Это такой извилистый путь. Об этом гораздо более естественно думать: (контроллер, действие, «текст») ... не так ли?