Javascript 如何从stronglyTyped模型填充动态添加的dropdownlist

Javascript 如何从stronglyTyped模型填充动态添加的dropdownlist,javascript,jquery,asp.net-mvc,razor,model-binding,Javascript,Jquery,Asp.net Mvc,Razor,Model Binding,关于如何使用Ajax数据填充下拉列表,有很多问题 但是,我已经在包含SelectList项的强类型模型中拥有了数据。我想用它来填充我的下拉列表-我该怎么做 因此,在向具有dropdownlist的表中添加新行之后,如何从cities模型中的数据填充/绑定新克隆的dropdownlist 生成视图时,您可以根据集合在模板中创建选项。假设City包含属性Id和名称,则 现在,当您使用var clone=$'rowtemplate.clone;要复制模板,克隆的值还包括元素如果数据在您的模型中,为什么

关于如何使用Ajax数据填充下拉列表,有很多问题

但是,我已经在包含SelectList项的强类型模型中拥有了数据。我想用它来填充我的下拉列表-我该怎么做

因此,在向具有dropdownlist的表中添加新行之后,如何从cities模型中的数据填充/绑定新克隆的dropdownlist


生成视图时,您可以根据集合在模板中创建选项。假设City包含属性Id和名称,则


现在,当您使用var clone=$'rowtemplate.clone;要复制模板,克隆的值还包括元素

如果数据在您的模型中,为什么不在第一次生成时在“选择”中创建选项,以便克隆它也复制选项?@StephenMuecke抱歉,我没有遵循,我如何访问模型来克隆其值?因为,在从服务器渲染视图之后,下拉列表会添加到新行中,所以它位于客户端。所以,这是不可能的@Html.DropDownListForm=>m.SelectedCity,Model.City,new{@class=formcontrol}@StephenMuecke你是说创建一个隐藏的下拉列表,然后克隆它在模板中,你可以在你的集合中执行@foreachvar项{@item.yy}因此,这些选项也被克隆,请注意,您确实不需要将id属性添加到elements@StephenMuecke是的,这真是天才,这就是答案,我可以把它标记为答案。再一次,你得到了最简单和最好的答案——我的意思是它也很容易维护:
// List of cities in my Model, Location
LocationModel {
...
IEnumerable<City> Cities }
<table id="rowtemplate">
 <tr>
   <td>
      <input type="hidden" name="Records.Index" value="#" />
        <span class="citiesCss">
          //DropDownList to clone
            <select class="form-control citiesCssId" id="Records_[#]__SelectedCityFromList" name="Records[#].SelectedCityFromList">
                <option value="">Default</option>                
            </select>
     </span>
   </td>

   <td> ... another cell       
  </td>
</tr>
</table>
    $("#CloneButton").click(function () {
        var index = (new Random());
        var clone = $('#rowtemplate').clone();
        clone.html($(clone).html());
        clone.find('.cities').text(cities);            
        $('#MainTable').append(clone.find('tr'));
    });
<table id="rowtemplate">
    ....
    <select class="form-control citiesCssId" name="Records[#].SelectedCityFromList">
        <option value="">Default</option>
        @foreach(var city in Model.Cities)
        {
            <option value="@city.Id">@city.Name</option>
        }              
    </select>
    ....
</table>