Почему переменная формы из динамического выбора HTML не определена в ASP.NET? - PullRequest
2 голосов
/ 17 декабря 2011

У меня есть веб-форма (с главной страницей, если это имеет значение) с тегом выбора:

<select id="versionList" name="versionList""></select>

Опции динамически добавляются с помощью jQuery из веб-службы в ответ на событие изменения в другом элементе управления выбора:

$.ajax ({
    url: "service.asmx/GetVersions",
    type: "POST",
    contentType: "application/json; charset=utf-8",
    data: "{'productID':'" + productID + "' }",
    dataType: "json",
    success: function(versions) {
        $("#versionList").empty();
        $.each(versions.d, function() {
        $("#versionList").append("<option value='" + this.ID + "'>" + this.Version + "</option>");
        });
    }
});

Когда я читаю переменную формы во время обратной записи, она возвращает "undefined":

string whereIsMyVersion = Request.Form["versionList"]; // "undefined"

Я добавил атрибут name к элементу select на основе этого вопроса и ожидал увидеть значение параметра, выбранного пользователем. Почему вместо этого я получаю "undefined"?

Если это актуально, я не использую DropDownList, потому что он генерирует ошибку, описанную здесь , когда я добавляю динамический параметр.

Ответы [ 2 ]

0 голосов
/ 17 декабря 2011

выбрано ли значение из выпадающего списка?если нет, то нет значения для отправки на сервер.

также, является ли элемент select html в форме при его отправке?если нет, то он не будет отправлен.

Единственная другая мысль, которая у меня возникла, заключается в том, что веб-формы не допускают каких-либо хакерских действий в POST перед отправкой, когда он каким-то образом только отправляет данные с серверных элементов управления.Таким образом, игнорируя ваш элемент html.

, если это так, то поместите скрытый тег элемента сервера в html и установите значение для выбранного параметра при изменении элемента select.

0 голосов
/ 17 декабря 2011

Используйте Request.["versionList"], он проверяет все коллекции запросов, но он должен быть в коллекции Request.Form, если versionList находится внутри тега формы .NET.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...