Отправка в форму с флажком программно

#c# #webrequest

#c# #веб-запрос

Вопрос:

Я погуглил свою задницу на этом.

Форма включает в себя это:

 <input name="Terms" data-required="true" type="checkbox" class="validated">
 

И я отчаянно пытаюсь справиться с этим так:

 WebRequest req = WebRequest.Create(link);
        string postData = "data-required=false";

        byte[] send = Encoding.Default.GetBytes(postData);
        req.Method = "POST";
        req.ContentType = "application/x-www-form-urlencoded";
        req.ContentLength = send.Length;

        Stream sout = req.GetRequestStream();
        sout.Write(send, 0, send.Length);
        sout.Flush();
        sout.Close();

        WebResponse res = req.GetResponse();
        StreamReader sr = new StreamReader(res.GetResponseStream());
        string returnvalue = sr.ReadToEnd();
        Console.WriteLine(returnvalue);
 

Обратите внимание, что он работает, чтобы установить для «требуемых данных» значение false и отправить в браузере вручную.

Есть предложения?

Ответ №1:

data-required это тег HTML5, который помечает поле как обязательное, он не имеет ничего общего с отправкой значений на сервер. Если вы хотите отправить POST-запрос с указанием того, что флажок установлен, вы должны отправить это в теле запроса:

 Terms=on
 

Terms это имя поля и on значение, указывающее, что флажок установлен

Комментарии:

1. Спасибо! Когда я набираю $(«ввод: флажок»).val() в консоли, значение по умолчанию кажется «включено», даже если флажок снят. Нужно ли мне что-то еще?

2. Нет, это должно быть все.