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

请教一个model初始值及页面显示问题
假如一个Model , User类里面有:string Name, DateTime AddDate, int Age,string Sex 字段
----
控制器里有 public ActionResult ShowUserInfo(){
  
  User u = new User{Name="wang",Sex="Man"};//我这里面没有给AddDate,Money赋值,结果一加断点,自动会有0001/1/1 ,0之类的
  return View(u);
}
---------
那页面:

@Html.TextBoxFor(m => m.AddDate)

@Html.TextBoxFor(m => m.Age)


就显示一个我不希望出现的值,因为这两个是留着前台输入的,我希望页面最初的时候这两input是为空的。

请教帮忙指点一下。



------解决方案--------------------
因为你的实体类中肯定是这样定义的
C# code

 private DateTime addday;
 public DateTime AddDay
 {
     get { return addday; }
     set { addday = value; }
 }
 而0001/1/1 ,0分别为datetime int 的默认值.

------解决方案--------------------
汗 我加了可空类型 看的不仔细啊。
C# code

private [color=#FF0000]DateTime?[/color] addday;
public [color=#FF0000]DateTime?[/color] AddDay
{
     get { return addday; }
     set { addday = value; }
}

------解决方案--------------------
DateTime?可空 
int?可空
这样。
------解决方案--------------------
0001/1/1 是因为你的时间没有获取的到,你在控制器里添加

model.AddDate=DateTime.Today;


出现0的原因是因为你的试图中没有给Age赋值,他添加的时候会根据你的模型实例化来默认为0

出现不能添加的原因应该是你的时间添加的不对!
------解决方案--------------------
探讨

DateTime?可空
int?可空
这样。

------解决方案--------------------
数据库里面时间类型和金钱类型的为null时,你前台显示会出默认的值,你先看看默认值是什么,在窗体加载的时候判断下,如果是这个值的时候,文本框的值为空呗