Главная страница   /   21.2. Создание базовых ссылок и URL (ASP.NET MVC 4

ASP.NET MVC 4

ASP.NET MVC 4

Адам Фриман

21.2. Создание базовых ссылок и 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