簡體   English   中英

ASP.NET MVC - 設置靜態選擇的默認值(下拉列表)

[英]ASP.NET MVC - Set default value for static Select (dropdownlist)

我在視圖中使用常規html下拉列表(選擇)。 出於某種原因,我不想使用Html.DropdownlistFor。 現在我可以在Controller類中獲取所選值。 如何將選定的值分配回視圖?

<select name='ddlLocation' id='ddlLocation'>
  <option value="">All </option>
  <option selected="selected" value="1">City1</option>
  <option value="2">City2</option>
  <optgroup label="Group">
    <option value="3">City2</option>
    <option value="4">City3</option>
    <option value="5">City4</option>
  </optgroup>
</select>

那么你去,你已經使用selected屬性完成了它:

<option selected="selected" value="1">City1</option>

您應該將所選屬性放在要預選的值上。

我想現在你意識到你不使用Html.DropDownListFor幫助器的瘋狂,它會自動為你處理。 因為現在你必須把@if else stataments轉換成意大利面條代碼才能達到理想的行為。 但我想你已經有了不使用助手的理由。


更新:

從您的評論看來,您不使用DropDownList幫助程序的原因似乎是因為它不支持optgroup 這是真的,也是一個很好的理由。 但是編寫一個custom helper是微不足道的,並且可以通過if / else語句預先設置默認值來避免使用spaghettifying你的視圖。

沒有太多干凈的方法可以解決這個問題,但假設您有某種類型的模型綁定到此頁面,您可以在頁面加載后立即根據模型值設置下拉列表的選定值:

<script type="text/javascript">

(function($) {
    $(document).ready(function() {
        var locationToSet = "@Model.LocationToSet";
        $('#ddlLocation option[value="' + locationToSet + '"]').prop('selected', true);});
})(jQuery);​

</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM