Передача двух параметров в Url.Action в ASP.NET: решение
Быстрый ответ
Если вы хотите добавить параметры в Url.Action
в ASP.NET MVC, выполните следующую команду с анонимным объектом:
@Url.Action("Действие", "Контроллер", new { id = 123, name = "Иван" })
Тем самым получится ссылка, включающая параметры в качестве части строки запроса:
<a href="@Url.Action("Действие", "Контроллер", new { id = 123, name = "Иван" })">Ссылка</a>
Убедитесь, что наименование параметров соответствует вашим маршрутам.
Подробно о кодировании параметров
Крайне важно контролировать корректное кодирование параметров URL и их правильную интерпретацию в интернете. После использования метода Url.Action
проверяйте URL на адекватность, чтобы минимизировать риск неожиданных ошибок.
Совпадение параметров действий контроллера и Url.Action
Параметры из метода Url.Action
должны точно соответствовать параметрам действий контроллера. Вот пример кода действия:
public ActionResult GetByList(string category, string subcategory)
{
// код получения списка по категориям
}
Соответствующий вызов Url.Action
будет таким:
@Url.Action("GetByList", "Products", new { category = "Электроника", subcategory = "Ноутбуки" })
Смотрите за объектом routeValues
Не забудьте о фигурных скобках {}
при использовании объекта routeValues — они помагают избегать ошибок при генерации ссылок.
<a href="@Url.Action("Действие", "Контроллер", new { id = 123, name = "Иван" })">Ссылка</a>
Используйте стандартные форматы маршрутов
Для конструирования удобной в использовании ссылки применяйте стандартные маршруты. Не забывайте указывать параметр Area
, если действие осуществляется в другой части MVC-приложения:
@Url.Action("Действие", "Контроллер", new { Area = "Админ", id = 123, name = "Иван" })
Избегайте пробелов (и постоянно тестируйте!)
Пробелы в именах параметров следует избегать. Всегда проверяйте созданные вами ссылки в различных браузерах на их работоспособность.
Остерегайтесь символов и меняющегося регистра
Следите за регистром букв в названиях действий, именах контроллеров и параметров. Старайтеся избегать излишнего употребления кавычек при значениях параметров.
Визуализация
Метод Url.Action
работает подобно поиску нужного инструмента в вашем "ящике":
🧰.getTool("🔧", { size: "M", type: "Adjustable" });
В данном случае Url.Action
помогает отыскать с указанными параметрами нужное действие:
Url.Action("Download", "Files", new { fileType = "PDF", year = 2021 })
🗂️🔗📥: [📄="PDF", 🕒=2021]
Полезные материалы
- Метод UrlHelper.Action (System.Web.Mvc) | Microsoft Learn — официальная документация Microsoft, посвященная методу
Url.Action
. - HTML-хелперы в ASP.Net MVC — глубокое погружение в мир HTML-хелперов в ASP.NET MVC.
- css – Как добавить класс "active" к Html.ActionLink в ASP.NET MVC – Stack Overflow — трения о способах использования метода
Url.Action
на Stack Overflow. - URL Routing with ASP.NET 4.0 – CodeProject — статья об основах маршрутизации URL в ASP.NET на CodeProject.
- Видео на YouTube – Глубокое погружение в маршрутизацию и Url.Action в ASP.NET MVC — детальный обзор работы метода
Url.Action
.