在开发项目中dropdownlist控件是常用到的控件,它的值的绑定是件比较复杂的事情,所以需要我们仔细且知道它的相关技能点( 深入Web框架-JQuey对CheckBox、RadioButton和DropDownList值操作和事件),要不然很容易出错,在web开发框架中dropdownlist绑定值出现未将对象引用设置到对象的实例的问题是怎么回事?

问题

在项目开发中笔者经常出现下面的错误,和大家共勉:

问题现象

定位

大家看红色框中的提示,web开发框架绑定selectlist值的是时候报引用Null错误,这个很清楚是我给dropdownlist的绑定值为Null引起的,看下我们前后端的代码:

web前端cshtml页面

@Html.LocalizedDropDownListFor(model => model.BelongedListsTitles, (IList<SelectListItem>)ViewBag.BelongedLists, 
Model.BelongedListsTitles, "", new { @class = "form-control" })

开发框架后台代码    List<BelongedLists> belongedLists = _belongedListsService.GetAllBelongedLists();


    List<SelectListItem> belongedListVB = new List<SelectListItem>();
belongedLists.ForEach(t => { belongedListVB.Add(new SelectListItem { Value = t.Name.ToString(), Text = t.Link }); });
ViewBag.BelongedLists = belongedListVB;

解决

web开发框架里我们可以看到前后端代码的差异,LocalizedDropDownListFor的绑值参数为ViewBag.RelatedLists,而后台赋值参数为ViewBag.BelongedListsTitle,页面执行代码的时候肯定会被报null的错误, 我们把前后端改为一致就可以了。这个在开发中经常会碰到,特别是我们使用dropdownlist控件的相关属性有名称改变时要特别关注下下。

在web开发框架中dropdownlist绑定值出现未将对象引用设置到对象的实例的问题是怎么回事?

posted on 2018-12-28 09:29  Web开发框架  阅读(166)  评论(0编辑  收藏  举报