ActionLinks - это просто теги привязки.
Поэтому они используют GET. Таким образом, для возврата вашей модели с использованием get вам нужно будет использовать параметры Query String, например, добавив «? MyInpu = некоторый классный ввод» в конце URL.
Вы можете связать почти ЛЮБОЙ сложный объект, как этот, включая списки и массивы.
Для получения дополнительной информации о Привязка модели
Сам файл, которым вы не будете в состоянии передать это так. Для этого вам нужно будет отправить форму с помощью кнопки отправки или FormData, используя javascript.
Вы также можете добавить якоря, которые вызывают функции javascript, которые используют AJAX для отправки всего, что вы хотите в Действие DownloadDescription в вашем контроллере.
Вот пример того, как передать модель, используя ссылку действия:
@Html.ActionLink("Test Action", "TestAction", "Home", new { myInput = "Some Cool Input" })
В моем случае предыдущий ActionLink создает тег привязки с href, установленным в :
http://localhost:64941/Home/TestAction?myInput=Some Cool Input
Обратите внимание, как я использовал анонимный тип для передачи модели, используя в этом случае те же имена свойств моей модели MyInput , но в верблюжьей версии myInput .
Вы можете создать любую модель, подобную этой.
Это мое действие в моем контроллере:
public IActionResult TestAction([FromQuery]TestModel input)
{
return View(input);
}
Обратите внимание, как я использовал [FromQuery] для * Параметр 1032 * TestModel указывает на то, что я ожидаю, что механизм связывания базовой модели ASP. NET будет использовать параметры строки запроса для заполнения моей модели.
Это мой класс модели:
public class TestModel
{
public string MyInput { get; set; }
}
Это результат во время отладки:
Обратите внимание, что во время отладки я вижу заполненное значение.
ПРИМЕЧАНИЯ:
Если ваша модель меняется на стороне клиента. Вам нужно будет обновить параметры строки запроса в теге привязки, используя javascript ..., по этой причине рекомендуется добавить имя в тег привязки.
Также это может ответить на ваш вопрос, но НЕ может будь лучшим подходом к тому, что ты пытаешься сделать.