Создание базовых ссылок и URL
Одной из самых основных задач в представлении является создание ссылок или URL, по которым пользователь может перейти в другую часть приложения. В предыдущих главах вы видели большую часть вспомогательных методов, которые можно использовать для создания ссылок и URL. И сейчас мы хотим воспользоваться моментом и напомнить их вам, прежде чем перейти к некоторым из более продвинутых вспомогательных методов. В таблице 21-1 описаны вспомогательные методы HTML и показаны примеры с ними.
Совет
Напомним, что выгода от использования этих вспомогательных методов для создания ссылок и URL заключается в том, что выходные данные выводятся из конфигурации маршрутизации, что обозначает, что изменения в роутах автоматически отражается на ссылках и URL.
Таблица 21-1: Вспомогательные методы HTML, которые отображают URL
Описание | Пример |
URL относительно приложения | Url.Content("~/Content/Site.css") ; Выход: /Content/Site.css |
Ссылка к именованному действию/контроллеру | Html.ActionLink("My Link", "Index", "Home") ; Выход: <a href="/">My Link</a> |
URL для действия | Url.Action("GetPeople", "People") ; Выход: /People/GetPeople |
URL с использованием роутовых данных | Url.RouteUrl(new {controller = "People", action="GetPeople"}) ; Выход: /People/GetPeople |
Ссылка с использованием роутовых данных | Html.RouteLink("My Link", new {controller = "People", action="GetPeople"}) ; Выход: <a href="/People/GetPeople">My Link</a> |
Ссылка к именованному роуту | Html.RouteLink("My Link", "FormRoute", new {controller = "People", action="GetPeople"}); Выход: <a href="/app/forms/People/GetPeople">My Link</a> |
Чтобы показать эти вспомогательные методы, мы создали файл представления /People/Index.cshtml
, содержание которого вы можете увидеть в листинге 21-4.
Листинг 21-4: Содержание файла /People/Index.cshtml
@{
ViewBag.Title = "Index";
}
<h2>Basic Links & URLs</h2>
<table>
<thead>
<tr>
<th>Helper</th>
<th>Output</th>
</tr>
</thead>
<tbody>
<tr>
<td>Url.Content("~/Content/Site.css")</td>
<td>@Url.Content("~/Content/Site.css")</td>
</tr>
<tr>
<td>Html.ActionLink("My Link", "Index", "Home")</td>
<td>@Html.ActionLink("My Link", "Index", "Home")</td>
</tr>
<tr>
<td>Url.Action("GetPeople", "People")</td>
<td>@Url.Action("GetPeople", "People")</td>
</tr>
<tr>
<td>Url.RouteUrl(new {controller = "People", action="GetPeople"})</td>
<td>@Url.RouteUrl(new {controller = "People", action="GetPeople"})</td>
</tr>
<tr>
<td>Html.RouteLink("My Link", new {controller = "People",
action="GetPeople"})</td>
<td>@Html.RouteLink("My Link", new {controller = "People",
action="GetPeople"})</td>
</tr>
<tr>
<td>Html.RouteLink("My Link", "FormRoute", new {controller = "People",
action="GetPeople"})</td>
<td>@Html.RouteLink("My Link", "FormRoute", new {controller = "People",
action="GetPeople"})</td>
</tr>
</tbody>
</table>
Это представление содержит тот же набор вспомогательных вызовов, которые мы перечислили в таблице 21-1, и представляет результаты в HTML таблице, как показано на рисунке 21-1. Мы включили этот пример, потому что он позволяет легко экспериментировать с изменением маршрутизации и сразу видеть результат.
Рисунок 21-1: Использование вспомогательных методов для создания ссылок и URL
