Я очень новичок в MVC и пытаюсь настроить новый сайт, используя его. По причинам SEO нам нужно сделать URL-адрес страницы наподобие «Recruiter / 4359 / John_Smith» или в основном {controller}/{id}/{name}
. У меня это работает, когда я создаю URL в коде, как это так ...
//r is a recruiter object that is part of the results for the view
r.Summary = searchResult.Summary + "... <a href=\"/Recruiter/" + r.Id + "/" + r.FirstName + "_" + r.LastName + "\">Read More</a>"
Но когда я использую коллекцию результатов поиска в моем представлении и перебираю их, я пытаюсь создать другую ссылку на ту же страницу, делая что-то вроде <%=Html.ActionLink<RecruiterController>(x => x.Detail((int)r.Id), r.RecruiterName)%>
, но это не работает. Когда я использую этот код в представлении, он дает мне URL в виде / Recruiter / Detail / 4359. Мне сказали коллеги, что я должен использовать Html.ActionLink, чтобы создать ссылку как в представлении, так и в контроллере, чтобы если маршрут изменится в будущем, он будет работать автоматически. К сожалению, он не был уверен, как это сделать в этом случае. Итак, мои проблемы ...
- Как я могу заставить Html.ActionLink работать в представлении, чтобы создать URL, который мне нужен (как r.Summary выше)?
- Как использовать Html.ActionLink в контроллере вместо жесткого кодирования ссылки, как у меня выше?