日期:2014-05-17  浏览次数:20575 次

String.Format转换日期格式,当日期为空值出错
用asp.net mvc3 做日期的模板,在share目录下建立DisplayTemplates文件夹,并生成一个DateTime.cshtml,里面的代码是
@String.Format("{0:d}",Model.Date),当Model.Date值不为空时,日期型的数据能正常显示,当Model.Date值传入空值时就提示出错“无法对 null 引用执行运行时绑定”,请问如何处理Model.Date的空值,谢谢!

------解决方案--------------------
@String.Format("{0:d}",Model.Date == null?"空":Model.Date);
------解决方案--------------------
@String.Format("{0:d}",Model.Date == null?"空":Model.Date);

 因为有这个格式{0:d}存在,所以,Date必须要有值。 要处理没有值的情况,那么就不应该在String.Format("{0:d}",Model.Date)这里面处理

 应该是像这样:

if(Model.Date != null....)
@String.Format("{0:d}",Model.Date
else
..........
------解决方案--------------------
这是我以前给数据库插入DateTime类型为空时的处理办法。你参考一下。
DateTime birthday;
if(birthday=="")
  
sqlparas[6]=new sqlparas("@birthday",DBNull.value);
  
else
  
sqlparas[6]=new sqlparas("@birthday",birthday);
------解决方案--------------------
应该先判断在显示。
当日期为空时,直接 string.Empty,日期不为空时再显示!
------解决方案--------------------
如果为空不让他转换不就行了吗
------解决方案--------------------
探讨

@Model.Date == null?"空":String.Format("{0:d}",Model.Date);
这样行

------解决方案--------------------
探讨

引用:

@Model.Date == null?"空":String.Format("{0:d}",Model.Date);
这样行

应该是这样的,逻辑判断在外面,Format方法要的参数是日期类型的,当值为空时但让报错了。

------解决方案--------------------
探讨

你像我一样写“空”是不行的引用:
@String.Format("{0:d}",Model.Date == null?"空":Model.Date);