2011-12-16 7 views
2

(それが重要ならば、マスターページで)私はselectタグでWebフォームを持っている:オプションを動的に別の選択制御の変更イベントに応答して、WebサービスからのjQueryを付加しますASP.NETで動的HTML選択のフォーム変数が定義されていないのはなぜですか?

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

:私はポストバック時にフォーム変数を読んだとき、それは "未定義" を返し

$.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>"); 
     }); 
    } 
}); 

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

私はを追加しましたはthis questionに基づいてselect要素に属しており、ユーザーが選択したオプションの値がわかると予想されます。なぜ私は代わりに「未定義」を取得するのですか?

関連する場合は、動的オプションを追加するときにエラーhereが記述されているため、DropDownListを使用していません。

+0

ガー、私は何かばかげたやりました。実際にselect *を追加したjQueryコードの 'this.ID'が*未定義です。私はWebサービスのプロパティ名を変更し、jQueryでプロパティ名を変更するのを忘れました。 –

答えて

0

Request.["versionList"]を使用すると、すべてのリクエストコレクションがチェックされますが、versionListが.NETフォームタグ内にあるので、Request.Formコレクションに含める必要があります。

0

は、ドロップダウンリストから選択された値ですか?そうでなければ、サーバーに投稿する価値はありません。

また、フォーム内の選択されたhtml要素は送信されますか?そうでなければ、それは提出されません。

私が持っている唯一の他の考えは、webformsが何らかの形でサーバー生成コントロールからデータを送信する前にPOSTにハックアップしないということです。したがって、HTML要素を無視します。

この場合、htmlに隠れたサーバー要素タグを置き、select要素が変更されたときに値を選択したオプションに設定します。

関連する問題