600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > MVC3.0 开发过程中遇到错误及解决方案(不断更新中。。。)

MVC3.0 开发过程中遇到错误及解决方案(不断更新中。。。)

时间:2024-04-21 07:46:22

相关推荐

MVC3.0 开发过程中遇到错误及解决方案(不断更新中。。。)

刚刚看到一个博友在工作中问题总结,见贤思齐,打算从现在把遇到的错误及解决思路加以总结,不断累积。

001. 未将对象引用设置到对象的实例 ----最常见的问题,注意原因,数据绑定是出现空值情况,即:null,设上断点,耐心调试,加以跟踪。总之,遇到null 时,不要紧张,

找到根源,多数是数据绑定的问题,有时候类型转换以及变量,数组重复定义导致。

002. 序列中不包含任何元素 和 序列包含一个以上的元素----第一个,在返回List集合时使用Single()与SingleOrDefault()导致,前者表示:满足指定条件的唯一元素,

存在多个则引发异常;后者:返回唯一,不存 在返回默认值(不报错),若存在多个,则引发异常。第二个,一般是DB和数据过滤时所导致。

003.不能在已使用的实体上添加新实体----实例:自己登陆后,给他人赋予操作权限,此时从人员表中,查询出所有人员,其中把自己选择上,此时就引发此错误。总结:

查询时,应该排除自己,只查询他人,这样添加时就不会出错。设上断点,跟踪即可发现此问题。

004. IEnumerable<T>与Ilist<T>使用混乱----前者只用于遍历,后者回的集合支持排序,索引,在添加和修改时也可以使用,但通常在添加和修改时返回类型为实体表。

两者在使用for循环遍历时,前者需.count(),后者.count即可。(for i=0;i<.count;i++)红色标志处,有时候我们只需要3笔,不鼓励写i<3,容易

引发:小于指定索引数。

005.指定的参数已超出有效值的范围。 参数名: skipCount----实例:修改DB中表的字段,但在Model中的dbml文件,没有更新(没有重拖),在新增和修改操作时,字段

不一致, 导致此错。总结:更新后及时完成一系列的操作。

006.ColorBox与ckeditor开窗时高度与宽度,在不同浏览器下显示混乱------首先调整好ColorBox的height,然后调整ckeditor的内边框的height,即:

View Code

1 //CKEDITOR.replace('CONTENT'); //将textarea值传给编辑器

2 var editor = CKEDITOR.replace('CONTENT', { height:300 });

然后通过firefox (firebug)或者IE8 (F12) 进行调整即可

007.提交一个表单时,对至少一个表进行操作时,应选择提交xxxxviewModel,然后在controller中在声明所要添加表的实体,进行操作,不要忘记在xxxxviewModel中

定义所添加表的实体。 因为在mvc3.0中一个view 只对应一个viewmodel。有有时候更改命名空间是无济于事的。

008. 使用ckeditor 显示内容提示:“文件格式未知,作为纯文本文件打开么?”----原因有两个:a.使用ck向DB里面存储时,查看存储内容是否还有成对且规范性的标签;b.如果

页面还是用其他编辑器(如scienceWord),要检查一下加载页面的使用哪一个?相应的js文件是否包含在相应的代码域内。这两个错误我都碰到过。前者是我

手动更改DB导致,后者,页面加载是未区分好。

009.使用Json操作时,运行程序从浏览器缓存中加载数据-----我们不能调整浏览器缓存的设置,所有在调用Json方法前,应该阻止数据从缓存加载,所有一段经典代码出现了

Json Code

1 // 禁用缓存

2 $.ajaxSetup({ cache: false });

3

4 $.getJSON("/Controller/Action", { id: EmpID }, function (data)

5 {

6

7 }

010.使用NHibernate,向DB里面存储可以为空的时间字段时,引发sqltime 溢出,应该给时间赋默认时间:

Model Code

1 /// <summary>

2 /// 修改日期

3 /// </summary>

4 private DateTime _TRSDATE = Convert.ToDateTime("1900-01-01");

5

6 /// <summary>

7 /// 修改日期

8 /// </summary>

9 public virtual DateTime TRSDATE

10 {

11 get

12 {

13 return _TRSDATE;

14 }

15 set

16 {

17 _TRSDATE = value;

18 }

19 }

总结:在使用NHibernate,如果DB里面为空的字段,应给赋值,否则无法完成新增、修改操作。

011.无法将datetable 类型转化成实体表(model),可以先转化在使用,即:

controller Code

1 DataTable dt = HQLHelper.ExecuteDataSet(CommandType.Text, sqlcompany, null).Tables[0];

2

3 COMPANYNAME company = new COMPANYNAME();

4 if (dt.Rows.Count > 0)

5 {

6 company = new COMPANYNAME(){

7

8COMNAMEID = (int)dt.Rows[0]["COMNAMEID"],

9COMNAMECN = dt.Rows[0]["COMNAMECN"].ToString(),

10CREATEDATE = (DateTime)dt.Rows[0]["CREATEDATE"]

11

12

13 };

14 }

012.在monorail框架中,出现“Error processing MonoRail request ” ——此时的Action是没有View的,只是提交时调用的方法。应该写上取消视图,即:CancerView();

013.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。