以下是网友的疑问:
================================================================
Html.EditorFor(model=>Time, new{@Value='2010-01-01 00:00:00'});
怎么就不能显示出来呢?
================================================================
解决方案:
1.直接在返回的model中处理默认值(虽然能处理,但是人家要显示给用户看啊,这招明显不管用啊)
2.Controller 中为 model.Time=DateTime.Parse("2010-01-01 00:00:00"); (这个正解)
3.EditorFor根据就没有可以设置显示内容格式的重载,你那样当然没用,它的第二个参数是设置ViewData值的,而不是设置显示内容的,解决办法是使用自定义template,在模板中设置内容格式,将模板名做为参数传递到第二个参数中,或者使用数据类型模板,即所有DateTime类型使用相当的模板,参考:
http://msdn.microsoft.com/zh-cn/library/ee308450(v=vs.98).aspx
或:
http://blog.sina.com.cn/s/blog_67532f7c01011zsc.html
关于第二种方法其实最简单实用
如下案例:
public ActionResult Create() { Contacts_CSales cs = new Contacts_CSales(); cs.phone_C = "10086";//这里可以给电话参数 赋默认值 return View(cs); }
// // POST: /Contacts_CSales/Create
[HttpPost] public ActionResult Create(Contacts_CSales contacts_csales) { contacts_csales.typeContacts = "渠道销售通讯录"; //这个可以处理不需要在界面上给用户看但是需要处理的默认值
if (ModelState.IsValid) { db.Contacts_CSales.Add(contacts_csales); db.SaveChanges(); return RedirectToAction("Index"); }
return View(contacts_csales); }