ブラウザは選択したテキストをどこにも送信しないため、JavaScriptを使用してこれを行うことができます。
1つのトリックは、そのようなコードを.aspxページの一番下に配置することです:(の前に</body>
)
var arrDDLs = document.getElementsByTagName("select");
for (var i = 0; i < arrDDLs.length; i++) {
var oDDL = arrDDLs[i];
if (!oDDL.name || oDDL.name.length === 0)
continue;
var inputName = oDDL.name + "_text";
var input = document.createElement("input");
input.type = "hidden";
input.name = inputName;
input.id = inputName;
oDDL.form.appendChild(input);
oDDL.onchange = function () {
var index = this.selectedIndex;
var text = (index >= 0) ? this.options[index].text : "";
var inputName = this.name + "_text";
var input = document.getElementById(inputName);
input.value = text;
};
//populate initial text:
oDDL.onchange();
}
このコードは基本的に、この他の回答の最初のアイデアを実装しており、選択したテキストを取得するには、選択キーのリクエスト値に「_text」を加えたものを読み取る必要があります。例:
string selectedText = Request.Form[m.ParentId + "_text"];
ライブテストケース。(JavaScript側のみ)