dir.by  
  Search  
Programming, development, testing
ASP.NET MVC (web сайт на архитектуре Model-View-Controller)
@Html.ActionLink внутри View в ASP.NET MVC
  Looked at 7199 times    
 @Html.ActionLink внутри View в ASP.NET MVC 
last updated: 11 January 2019
@Html.ActionLink создает ссылку в виде HTML разметки
<a href="путь ссылки">Название ссылки</a>
Пример
  В файле Views/Home/Index.cshtml напишем код:
@{
     Layout = null;
}

<!DOCTYPE html>

<html>

     <!-- head -->
     <head>
          <meta name="viewport" content="width=device-width" />
          <title>Page</title>
     </head>

     <!-- style -->
     <style>
          .myText {color: green;}
     </style>
    
     <!-- body -->
     <body>

          @Html.ActionLink("My link1" /*linkText*/, "Show" /*action*/)
          <!-- будет сгенерирован элемент
          <a href="/Home/Show">My link1</a>
          Home это контроллер данного(текущего) View
          -->


          @Html.ActionLink("My link2" /*linkText*/, "Show" /*action*/, new { author = "Monte Kristo" } /*route*/)
          <!-- будет сгенерирован элемент
          <a href="/Home/Show?author=Monte Kristo">My link2</a>
          Home это контроллер данного(текущего) View
          -->


          @Html.ActionLink("My link3" /*linkText*/, "Show" /*action*/, "MyController1" /*controller*/)
          <!-- будет сгенерирован элемент
          <a href="/MyController1/Show">My link3</a>
          -->


          @Html.ActionLink("My link4" /*linkText*/, "Show" /*action*/, new { author = "Monte Kristo", id = 10 } /*route*/, null /*htmlAttributes*/)
          <!-- будет сгенерирован элемент
          <a href="/Home/Show/10?author=Monte Kristo">My link4</a>
          Home это контроллер данного(текущего) View
          /Home/Show/10 это controller/action/id такой путь записан в маршрутизаторе файл RouteConfig.cs (объяснение ниже)
          -->


          @Html.ActionLink("My link5" /*linkText*/, "Show" /*action*/, "MyController1" /*controller*/, new { author = "Monte Kristo", price = 30 } /*route*/, null /*htmlAttributes*/)
          <!-- будет сгенерирован элемент
          <a href="/MyController1/Show?author=Monte Kristo&price=30">My link5</a>
          -->


          @Html.ActionLink("My link6" /*linkText*/, "Show" /*action*/, null /*route*/, new { @class = "myText", width="300px" } /*htmlAttributes*/)
          <!-- будет сгенерирован элемент
          <a class="myText" href="/Home/Show" width="300px">My link6</a>
          Home это контроллер данного(текущего) View
          -->


          @{
               RouteValueDictionary dict1 = new RouteValueDictionary();
               dict1["author"] = "Monte Kristo";
          }
          @Html.ActionLink("My link7" /*linkText*/, "Show" /*action*/, dict1/*RouteValueDictionary*/, null /*htmlAttributes*/)
          <!-- будет сгенерирован элемент
          <a href="/Home/Show?author=Monte Kristo">My link7</a>
          Home это контроллер данного(текущего) View
          -->


          @{
               RouteValueDictionary dict2 = new RouteValueDictionary();
               dict2["author"] = "Monte Kristo";
          }
          @Html.ActionLink("My link8" /*linkText*/, "Show" /*action*/, "MyController1" /*controller*/, dict2/*RouteValueDictionary*/, null /*htmlAttributes*/)
          <!-- будет сгенерирован элемент
          <a href="/MyController1/Show?author=Monte Kristo">My link8</a>
          -->


     </body>

</html>
Результат примера
На заметку 1
Обратите внимание на new { @class = "myText", width="300px" }
  в файле Views/Home/Index.cshtml
...
@Html.ActionLink("My link6" /*linkText*/, "Show" /*action*/, null /*route*/, new { @class = "myText", width="300px" } /*htmlAttributes*/)
...
new {свойство1 = значение1, ...} означает объект с анонимным типом. Читать подробнее ...

Внимание! Мы пишем @class потому что мы не можем писать просто class из за ошибки компиляции. Слово class это зарезервированное слово. Компилятор когда встречает слово class он считает что это объявление класса в C#...

  C#  
new { author = "Monte Kristo", id = 10 }

это тоже объект с анонимным (отсутствующим) типом в C# ...
На заметку 2
  Файл Views/Home/Index.cshtml
...
@Html.ActionLink("My link4" /*linkText*/, "Show" /*action*/, new { author = "Monte Kristo", id = 10 } /*route*/, null /*htmlAttributes*/)
<!-- будет сгенерирован элемент
<a href="/Home/Show/10?author=Monte Kristo">My link4</a>
Home это контроллер данного(текущего) View
-->

...
Ссылка указывает на /Home/Show/10?author=Monte Kristo
потому что в файле RouteConfig.cs прописан url как "{controller}/{action}/{id}"
 
  C#     Файл App_Start\RouteConfig.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

namespace WebApp1
{
     public class RouteConfig
     {
          public static void RegisterRoutes(RouteCollection routes)
          {
               routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

               routes.MapRoute(
                    name: "Default",
                    url: "{controller}/{action}/{id}",
                    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
               );
          }
     }
}
На заметку!
  C#  
new { controller = "Home", action = "Index", id = UrlParameter.Optional }

это объект с анонимным (отсутствующим) типом в C# ...
 
← Previous topic
Аттрибут [HiddenInput(DisplayValue = false)] описывается в C# классе и используется в @Html.HiddenFor в ASP.NET MVC
 
Next topic →
@Html.RouteLink внутри View в ASP.NET MVC
 
Your feedback ... Comments ...
   
Your Name
Your comment (www links can only be added by a logged-in user)

  Объявления  
  Объявления  
 
Что такое MVC в ASP.NET ?
Создаем новое приложение ASP.NET MVC
Контроллер (Controller)
Передаем данные из контроллера в представление в ASP.NET MVC. Используем ViewBag, ViewData, TempData, Model (строго типизированное представление)
Представление (View)
Что такое View (представление) и операторы Razor в ASP.NET MVC
Создаем переменную и выводим на экран во View в ASP.NET MVC
@using внутри View в ASP.NET MVC
@foreach(var item in arr) {...} внутри View в ASP.NET MVC
@DateTime.Now внутри View в ASP.NET MVC
Как узнать имя контроллера внутри View в ASP.NET MVC
Отображаем [DateTime | только Date | только Time] в нужном формате в ASP.NET MVC
Разновидности представлений (View)
Строго типизированное представление (Strongly-typed-view) в ASP.NET MVC
...
Мастер представление (Master View) с использованием @RenderBody() в ASP.NET MVC
Мастер представление (Master View) с использованием @RenderBody() и дополнительных секций @RenderSection в ASP.NET MVC
...
Частичное представление (Partial View) в ASP.NET MVC. Встраиваем частичное представление @Html.Partial("My1") и @{ Html.RenderPartial("My1");}
При нажатии submit внутри partial view происходит ajax вызов метода controller. Метод controller должен возвращать PartialView(model) | ASP.NET MVC
...
Строго типизированное частичное представление (Strongly-typed partial view) в ASP.NET MVC
Создаем папку ViewModels. Это хороший стиль программирования для передачи данных из Controller во View
Создаем папку ViewModels. Создаем свой класс в папке ViewModels. Это хороший стиль программирования для передачи данных из Controller во View. Web приложение ASP.NET MVC
Атрибуты. Используем атрибуты во ViewModels(чтобы показать кнопки, combo в представлении). Используем атрибуты в Controller (чтобы улучшить методы)
Аттрибут [Display(Name = "...")] описывается в C# классе и используется в @Html.LabelFor, @Html.DisplayNameFor в ASP.NET MVC
Аттрибут [Required(ErrorMessage = "Пожалуйста, введите название")] описывается для свойства в C# классе и требует чтобы свойство было заполнено, если не заполнено на экране ошибка ErrorMessage в ASP.NET MVC
Аттрибут [Remote("IsValidAuthor", "Home", ErrorMessage = "Enter correct author of book")] описывается для свойства в C# классе и проверяет это свойство на правильность на сервере через метод IsValidAuthor в conroller Home, если метод возвращает false, то на экране будет ошибка ErrorMessage в ASP.NET MVC
Аттрибут [HiddenInput(DisplayValue = false)] описывается в C# классе и используется в @Html.HiddenFor в ASP.NET MVC
Маршрутизация
Ссылки и перенаправления в представлении
@Html.ActionLink внутри View в ASP.NET MVC
@Html.RouteLink внутри View в ASP.NET MVC
@Url.Action внутри View в ASP.NET MVC
@Url.RouteUrl внутри View в ASP.NET MVC
@Url.Content внутри View в ASP.NET MVC
Bootstrap в MVC
Добавляем и подключаем Bootstrap (css, js файлы) в ASP.NET MVC проект
JQuery в МVС
Подключаем JQuery в ASP.NET MVC проект
С помощью JQuery получаем содержимое View (представления) в ASP.NET MVC. Пример: $.get("/Home/Index", function (data) {...}) ...
Класс AjaxExtensions в МVС (асинхронное получение данных)
Подключаем jQuery & AJAX в ASP.NET MVC проект
С помощью Ajax.ActionLink получаем содержимое View (представления) и вставляем в div в ASP.NET MVC
Объект Ajax (это класс AjaxExtensions) в ASP.NET МVС
База данных (Entity Framework) в ASP.NET MVC
Entity Framework в приложении ASP.NET MVC. Используем Code First (пишем c# код, а таблицы в базе данных создаются сами)
Аутентификация (login/register/logout)
Что такое аутентификация (login/register/logout) в ASP.NET MVC ?
Пример: Аутентификация (login/register/logout) в ASP.NET MVC используя аутентификацию форм FormsAuthentication.SetAuthCookie(model.Name, true);
Авторизация (admin/user/...)
Что такое авторизация (admin/user/...) в ASP.NET MVC ?
Пример: Авторизация (admin/user/...) в ASP.NET MVC используя провайдер ролей RoleProvider
Пишем приложение "Планирование дел, задач" в ASP.NET MVC
Создаем пустое приложение "Планирование дел, задач" | ASP.NET MVC | Visual Studio 2017
Добавляем библиотеки Bootstrap & jQuery в приложение "Планирование дел, задач" | ASP.NET MVC | Visual Studio 2017
Создаем мастер-представление (главное меню & логин кнопки используя Bootstrap) в приложении "Планирование дел, задач" | ASP.NET MVC | Visual Studio 2017
Добавляем контроллер "Home" и представление "Index" (главная страница в приложении "Планирование дел, задач" | ASP.NET MVC | Visual Studio 2017
Добавляем библиотеку Entity Framework и создаем соединиение с Базой данных в приложении "Планирование дел, задач" | ASP.NET MVC | Visual Studio 2017
Аутентификация (login/register/logout) в приложении "Планирование дел, задач" | ASP.NET MVC | Visual Studio 2017
Добавляем класс "Task" для сохранения дел, задач в базу данных в приложении "Планирование дел, задач" | ASP.NET MVC | Visual Studio 2017
Добавление nUnit в приложении "Планирование дел, задач" | ASP.NET MVC | Visual Studio 2017
Дополнительные темы, вопросы
Чем ASP.NET MVC лучше ASP.NET Web Forms ?
Выбор между ASP.NET Core и ASP.NET ?
Как выбрать интернет браузер чтобы в нем запускался .NET проект
Как узнать локальный адрес и порт вашего ASP.NET MVC приложения ?
Scripts\index.d.ts(8,1): error TS1008: Build:Unexpected token; 'module, class, interface, enum, import or statement' expected. Scripts\index.d.ts(8,13): error TS1005: Build:';' expected. в Visual Studio 2017 в приложении ASP.NET MVC
Error "unable to connect to web server "iis express" | ASP.NET MVC | Visual Studio 2017
Error "This site can't be reached" when run ASP.NET application | Solution: Recreate the Self-Signed HTTPS Certificate for localhost in IIS Express
WWW сайты для изучения ASP.NET MVC
Cайты для изучения ASP.NET MVC

  Ваши вопросы присылайте по почте: info@dir.by  
Яндекс.Метрика