2013-02-28 27 views
1

我是相當新的MVC,但有一些體面的ASP.Net體驗。MVC3 Html.DropDownListFor和html.EditorFor相同的字段

我想了解可能有一個自定義選項到我的下拉列表。下面是我的下拉列表以及我的editorfor。顯然,提交頁面時,所選值和輸入數據都不會被存儲。我正在查看是否允許在下拉菜單中使用「自定義」選項,是否可以將存儲在編輯器中的值存儲爲下拉列表選項?可能甚至不顯示編輯器,除非選擇是dropdownlistfor的自定義值。

 @Html.DropDownListFor(model => model.Url, Model.individualPages) 
    @Html.EditorFor(model => model.Url) 

回答

2

您可以通過生成一個不同的選擇方案有不同的ID和呈現一個隱藏字段爲Url財產做。請嘗試以下方法:

<select id="url-list"> 
     @foreach(var item in Model.individualPages) 
     { 
      <option value="@Model.Url"> 
       @Model.Url 
      </option> 
     } 
     <option > custom... </option> 
</select> 

<input type="text" id="custom-url"/> 

@Html.HiddenFor(e=>e.Url) 


<script> 
    $(document).ready(function(){ 
     $("select#url-list").change(function(){ 
       var selectedItem =$("option:selected",$(this)), 
        selectedValue = selectedItem.val(); 

       $("#url").val(selectedValue); 
     }); 
     $("form").submit(function(){ 
       var selectedItem = $("option:selected",$("select#url-list")), 
        selectedIndex = selectedItem.index(), 
         itemCount = $("option",$("select#url-list")).length; 
       if (selectedIndex == itemCount -1) 
        $("#url").val($("#custom-url").val()); 
     }); 
    }); 
</script> 
相關問題