未捕获的TypeError:对象没有方法'addClass' - 当dropdownlist源为空时,jquery.mobile-1.2.0.min.js:2

时间:2013-07-31 09:10:04

标签: asp.net-mvc jquery-mobile asp.net-mvc-4

我在chrome的控制台中收到此消息。页面保持加载标志,但没有任何反应,它冻结在那里,ui没有显示。当dropdownlistfor的源没有元素时会发生这种情况。如果有,它可以正常工作。这是我的代码: ViewModelFactory:

SpecialOffersRep specialOffersRep = new SpecialOffersRep();
IEnumerable<SpecialOfferBO> specialOffers = specialOffersRep.GetForDropDown();

List<SelectListItem> specialOffersForDropDown = new List<SelectListItem>();
foreach (SpecialOfferBO sp in specialOffers)
{
    specialOffersForDropDown.Add(new SelectListItem { Text = sp.SpecialOfferName, Value = sp.SpecialOfferID.ToString() });
}
orderVm.SpecialOffers = specialOffersForDropDown;
return orderVM;

所以当specialOffersForDropDown没有项目时我收到错误。

在视图中我有这个:

<tr>
   <td>
      @Html.LabelFor(m => m.SpecialOfferID, new { @class = "label" })
    </td>
    <td>
      @Html.DropDownListFor(m => m.SpecialOfferID, Model.SpecialOffers, new { data_mini = "true", id = "ddlSpecialOffer" })
     </td>
</tr>

我创建了一个没有jquery mobile的测试项目,它可以正常使用空数据源。

我也尝试了Enumerable.Empty<SelectListItem>()而不是Model.SpecialOffers,但遇到了同样的错误。

0 个答案:

没有答案