1

私は MVC にはかなり慣れていませんが、ASP.Net についてある程度の経験があります。

ドロップダウンリストにカスタムオプションがある可能性を調べようとしていました。以下は私のドロップダウンリストと私のエディターです。ページが送信されると、選択した値と入力されたデータの両方が保存されないことは明らかです。ドロップダウンで「カスタム」オプションを許可するかどうかを調べていましたが、ドロップダウンリストの選択の代わりにエディターに入力された値を保存できますか? 選択がドロップダウンリストのカスタム値でない限り、エディターを表示することさえできない可能性があります。

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

1 に答える 1

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>
于 2013-02-28T20:12:35.423 に答える