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

«HttpRequestMessage» не содержит определения для «Формы»

ASP.NET MVC 6 (DNX 4.5.1).

В моем методе PUT.

public class MyController : ApiController
{
    .......
// UPDATE
    [Microsoft.AspNet.Mvc.HttpPut]
    public void Update()
    {
        try
        {
            var item = new Item()
            {
                UserName = Request.Form["UserName"]
            };
            _itemRespository.Update(item);
        }
        catch (Exception e)
        {
            Debug.WriteLine(e.Message);
        }
    }

Что я имею:

Ошибка CS1061 «HttpRequestMessage» не содержит определения для «Form», и не удалось найти метод расширения «Form», принимающий первый аргумент типа «HttpRequestMessage» (вам не хватает директивы using или ссылки на сборку?) MyProject.DNX 4.5 .1

Существует похожий вопрос, но я не вижу помогите мне.

ИЗМЕНИТЬ:

Ссылка использует POST для передачи данных методу. Он передал string value в методе. Другими словами, он заранее знает цену. Что ж, в моем случае я использую jqgrid для редактирования своих данных. После того, как я нажму кнопку отправки, я думаю, что отредактированные данные взяты из файла Request Form. Я еще не знаю этого заранее.


  • Ответ, на который вы ссылаетесь, довольно понятен. Что вы не понимаете или у вас остались вопросы? 22.01.2016
  • Это для POST, у меня PUT. Итак, как я могу позаимствовать код? ЕСЛИ Итак, пожалуйста, вставьте свой код. 22.01.2016
  • Это один и тот же ответ, будь то POST, PUT или DELETE. Вы должны передавать данные напрямую, используя параметры метода и атрибут, чтобы указать, исходят ли они из тела или из uri. Единственным исключением является GET, где тогда можно включать данные только в URL-адрес или в заголовок HTTP, поскольку вы не можете ничего передать в полезной нагрузке (т.е. данных) запроса. 22.01.2016
  • В примере передана строка, однако в моем примере мне нужно передать объект (POCO). Не знаете как? 22.01.2016
  • Точно так же, как строка. См. эту статью/инструкции по работе с веб-API: weblog.west-wind.com/posts/2012/May/08/ 22.01.2016
  • Это отличается. В статье по-прежнему используется POST, он уже знает объект, который нужно передать. Однако в PUT объект неизвестен, вы не можете передать его в качестве аргумента в метод. Вы должны взять его из Form. Итак, в моем методе я использовал Form. 22.01.2016
  • Единственная разница между PUT и POST заключается в том, что PUT должен использоваться идемпотентно. В остальном нет никакой технической разницы между ним и POST. Вы реализуете их так же, как вы передаете данные методу веб-API и возвращаете ответ. Опять же, вам действительно следует прочитать инструкции или начать работу по внедрению веб-API, чтобы не застрять с самого начала. Это не оскорбление, а только рекомендация. 22.01.2016
  • Давайте продолжим обсуждение в чате. 22.01.2016
  • Смотрите мой обновленный вопрос. 22.01.2016
  • Похоже, вопрос заключается в том, как получить значение формы по имени, если имя неизвестно во время компиляции. 22.01.2016
  • @zespri, ты прав. 22.01.2016

Ответы:


1

Вот две хорошие отправные точки для передачи содержимого динамической формы в метод веб-API.

Отправка данных формы HTML в ASP.NET Веб-API: данные с URL-адресом формы

Вопрос Stackoverflow. Как получить данные POST в WebAPI?

Поэтому ваш вопрос следует перефразировать так: как вы работаете с динамическим содержимым формы и инфраструктурой веб-API. Это не имеет ничего общего с тем, какой веб-метод (POST, PUT, DELETE, GET) вы используете.

21.01.2016
  • Пожалуйста, разместите свой код для моего конкретного случая. Это не ответ. Это просто комментарий. 22.01.2016
  • @Love На самом деле вам не нужен ответ, вам нужна книга или какой-либо другой учебный/вводный материал. В данный момент вы ищете быстрые ответы, не понимая, почему что-то работает именно так. Иногда это нормально, но не тогда, когда вы не понимаете фундаментальных концепций платформы, на которой/для которой разрабатываете. Без этих основных знаний вы будете продолжать бороться на каждом шагу. Я понял это, основываясь на некоторых других ваших вопросах. Я настоятельно рекомендую вам потратить пару часов и прочитать о Web Api, прежде чем продолжить. Желаю тебе всего наилучшего. 22.01.2016
  • Сложность заключается в том, что структура html проста при использовании jqgrid. <body> <table id="jqGrid"></table> <div id="jqGridPager"></div></body>. Вот и все. Мы не знаем селекторов в форме. Вся структура форм скрыта в файле jqgrid. См. демонстрацию jqgrid. 22.01.2016

  • 2
    Microsoft.AspNet.Mvc.HttpPut
    

    ASP.NET MVC 6 (DNX) не поддерживает его получение. Если мы не используем

    System.Web.Http.HttpPut
    
    25.01.2016
    Новые материалы

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

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

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

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

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

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

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