【问题标题】:for loop over Model List in MVC script and access Jquery inside loopfor 循环遍历 MVC 脚本中的模型列表并在循环内访问 Jquery
【发布时间】:2013-07-23 02:31:49
【问题描述】:

我想在 MVC 脚本的 forloop 中访问 jquery。这是场景:-

我有列表类型的模型属性。并希望遍历循环并将内容添加到同一视图中的下拉菜单。

    @Html.EditorFor(model => model.worklist)
    @Html.DropDownListFor(model => model.PhoneNumber, Enumerable.Empty<SelectListItem>(), new { id = "contactPhone" })

<script type="text/javascript">
  $(document).ready(function () {

@for(var i=0; i < Model.worklist.Count(); i++)
{
   if(Model.worklist[i].PhoneID == 1)
   {
     @:$('<option />').val(Model.worklist[i].PhoneNumber).text(Model.worklist[i].PhoneNumber).appendTo('#contactPhone select');
   }
}

  });
</script>

它不工作。有什么方法可以像这样使用 mvc 脚本中的其他 Model 属性动态填充下拉列表?

【问题讨论】:

  • 为什么在 jQuery 中这样做?为什么不在你的DropDownListFor 中?
  • @JasonP,实际上在屏幕上我有工人的电话列表,他们可以添加多个手机号码。我必须使用 Cell 类型的电话号码填充下拉列表。所以在那种情况下,我想我需要 jquery 函数,以便我可以捕获 PhoneType 下拉列表的 on change 事件。

标签: javascript jquery asp.net-mvc populate html.dropdownlistfor


【解决方案1】:

看起来您的选择器 #contactPhone select 不起作用,因为 select 控件也有 contactPhone id。请与.appendTo('#contactPhone')联系。

顺便说一句,您可以使用 helper 为您的模型填充下拉列表:

@{
    new list = Model.worklist.Select(x => new SelectListItem {
       Text = x.PhoneNumber.ToString(), 
       Value = x.PhoneNumber.ToString()
    }).ToList();
}

@Html.DropDownListFor(model => model.PhoneNumber, list, new { id = "contactPhone" })

【讨论】:

    猜你喜欢
    • 2017-11-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-14
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    • 1970-01-01
    • 2022-01-06
    相关资源
    最近更新 更多