<select runat="server" id="ddlCategory" class="form-control">
<option value="1">類別一</option>
<option value="2">類別二</option>
<option value="3">類別三</option>
</select>
// 1. 取得選取項目的文字 (顯示文字)
string text = ddlCategory.Items[ddlCategory.SelectedIndex].Text;
// 2. 取得選取項目的值 (value 屬性)
string value = ddlCategory.Items[ddlCategory.SelectedIndex].Value;
// 3. 簡寫:直接取 Value (等同於 Request.Form["ddlCategory"])
string value2 = ddlCategory.Value; // 需 ASP.NET 4.0+,內部自動轉向 SelectedItem.Value
| 寫法 | 結果 | 說明 |
|---|---|---|
ddlCategory.SelectedItem.Text | ✅ 正確 | 推薦,語意清晰 |
ddlCategory.Items[ddlCategory.SelectedIndex].Text | ✅ 正確 | 等同上述 |
ddlCategory.Value | ✅ 正確 (4.0+) | 捷徑屬性 |
Request["ddlCategory"] | ✅ 正確 | 繞過控制項直接取表單值 |
ddlCategory.SelectedValue | ❌ 編譯錯誤 | HtmlSelect 無此屬性,僅 DropDownList 有 |
<select runat="server"> → System.Web.UI.HtmlControls.HtmlSelect<asp:DropDownList runat="server"> → System.Web.UI.WebControls.DropDownList使用 `runat="server"` 的原生 `