foreach提示未将对象引用设置到对象的实例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了foreach提示未将对象引用设置到对象的实例相关的知识,希望对你有一定的参考价值。
@using Doule.Splg.Domain.Entitys;
@using Doule.Splg.Model.Query;
@
ViewBag.Title = "设置店铺首页";
Layout = "~/Views/shared/_layoutShops.cshtml";
var collection = ViewBag.Collection as List<Goods_Main>;
var condition = ViewBag.Condition as Query_Condition_Goods;
var categoryList = ViewBag.CategoryList as List<Goods_Category>;
<div id="sp_dialog_addPage" title="添加品牌" class="sp_dialog">
<table class="fill">
<tr>
<td>
<p>
商品名称</p>
</td>
<td>
<p>
商品品牌(中文/英文)</p>
</td>
<td>
<p>
商品转换价/预销售价格</p>
</td>
<td>
<p>
添加时间</p>
</td>
<td>
是否选择
</td>
</tr>
@foreach (var item in collection)
<tr>
<td>
<label id="goodsName">@item.GoodsName</label>
</td>
<td>
<label id="goodsBrand">@item.Goods_Brand.BrandNameCN/@item.Goods_Brand.BrandNameEN</label>
</td>
<td>
<label id="goodsPrice">@item.PriceConver/@item.SalesPrice</label>
</td>
<td>
<label id="">@item.CreateTime</label>
</td>
<td>
<label>
<input type="radio" value="0" name="choice" checked="checked" />是</label>
<label>
<input type="radio" value="1" name="choice" />否</label>
</td>
</tr>
</table>
</div>
1、ViewState对象为Null。
2、DateSet空。
3、sql语句或Datebase的原因导致DataReader空。
4、声明字符串变量时未赋空值就应用变量。
5、未用new初始化对象。
6、Session对象为空。
7、对控件赋文本值时,值不存在。
8、使用Request.QueryString()时,所获取的对象不存在,或在值为空时未赋初始值。
9、使用FindControl时,控件不存在却没有做预处理。
10、重复定义造成未将对象引用设置到对象的实例错误. 参考技术A 我不知道你这是哪国鸟语。我只看的懂JAVASCIPRT,JAVA,C#。
未将对像引用到实例,指的是空指针异常,即null point exception。
跟据常规理解,foreach循环遍历出现空指针异常都是遍历的集合、数组等对像未能获取到值。
断点跟踪你的collection变量有没有正确获取到数据。追问
有值 那除了foreach遍历所有对象这样获取值还有什么方法可以获取值么
追答不知道你这是什么语言,我看不懂。
就遍历而言,我所熟悉的JAVA与C#都有for while iterator foreach 这样的循环语句
对WEB而言,JAVA基本的标准标签库以及常见的主流框架或自定义框架支持,对于C#的ASP.NET同样也有对应的控件用来数据绑定并自动遍历。
Resources.resx 未将对象引用设置到对象的实例
原文:解决使用DevExpress开发错误:未将对象引用设置到对象的实例
在使用DevExpress是总是会出现一些状况。这次同事在他的机器上调试完毕的代码发过来,却出现“未将对象引用设置到对象的实例”的错误,提示是Resources.resx的问题。还有一个提示是LC.exe错误。
LC.exe的问题好办,删除文件licenses.licx即可。
另外一个未设置对象的问题就不好办了,尝试过重新安装DevExpress,但是错误还是一样的。后来尝试修改Resources.resx这个文件,问题得到解决,具体就是将文件中“Version=4.0.0.0”改成“Version=2.0.0.0”就OK了,应该就是先后设置使用不同.Net版本的问题。
<resheader name="reader"> <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <resheader name="writer"> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <data name="back" type="System.Resources.ResXFileRef, System.Windows.Forms"> <value>..\Resources\back.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> </data> <data name="blank" type="System.Resources.ResXFileRef, System.Windows.Forms"> <value>..\Resources\blank.gif;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> </data> ...
以上是关于foreach提示未将对象引用设置到对象的实例的主要内容,如果未能解决你的问题,请参考以下文章
Parallel.ForEach 多线程 声明失败 "未将对象引用设置到对象的实例"