Nano Hash - криптовалюты, майнинг, программирование

Маршрутизация действий: приложение путается между методами GET и POST.

Контекст:

Представление, построенное методом GET, в этот момент принимает два параметра: id и date. В этом представлении есть форма, которая отправляет информацию обратно в контроллер с помощью метода POST, используя параметр id.

Метод GET

    [HttpGet]
    public async Task<IActionResult> DetailsAdmin(int? id, [ModelBinder(typeof(PModelBinder))]DateTime? date)
    {
       {...}
    }

Метод POST

    [HttpPost, ActionName("DetailsAdmin")]
    [ValidateAntiForgeryToken]
    [Route("HechosLiquidadors/DetailsAdmin/{id}")]
    public async Task<IActionResult> DetailsAdmin(int? id)
    {
       {...}
    }

Проблема:

Когда форма внутри представления отправляет информацию в контроллер, она переходит к действию GET вместо действия POST.

Форма:

<form id="@(String.Format("{0}{1}","form",Model[i].HechosID))" 
asp-action="DetailsAdmin" method="post" asp-route-id="@Model[i].HechosID" ></form>

Я пытался использовать метод Custom Routing to the POST Action, но безуспешно. Как я могу исправить это, чтобы форма правильно указывала на действие POST?

24.11.2017

Ответы:


1

В обоих методах действий все параметры необязательны. поэтому Mvc не может выбрать метод «Лучший кандидат» для выполнения. измените первое действие, как показано ниже, и проверьте, что идентификатор не равен 0:

[HttpGet]
public async Task<IActionResult> DetailsAdmin(int id = 0, [ModelBinder(typeof(PModelBinder))]DateTime? date)
{
    if (id != 0)
    {

    }
    {...}
}
24.11.2017
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..