MVC Razor - 将EditorFor的默认值设置为今日日期

问题描述:

我正在尝试制作EditorFor,它的值将会是今天的日期,但我似乎无法弄清楚它为什么不起作用。MVC Razor - 将EditorFor的默认值设置为今日日期

我已经尝试了几件事情,但他们都没有工作。

尝试1:

检视:

@Html.EditorFor(model => model.Opgevoerd, new { htmlAttributes = new { @class = "form-control", type = "DateTime", placeholder = "dd/mm/yyyy", value=DateTime.Now } }) 

尝试2:

控制器:

Model.Opgevoerd = DateTime.Now; 

return View(Computers___tabel); 

检视:

@Html.EditorFor(model => model.Opgevoerd,"{0:dd/mm/yyyy}", new { htmlAttributes = new { @class = "form-control", type = "DateTime", placeholder = "dd/mm/yyyy" } }) 

我不记得尝试3 x)

我一直坚持在这一段时间,我似乎无法弄清楚。

谢谢!

+1

尝试改变'值= DateTime.Now'到'值= DateTime.Now' –

+0

'HtmlHelper'方法绑定到你的模型。在GET方法中设置'Opgevoerd'的值并将模型返回到视图。 - 'model.Opgevoerd = DateTime.Now;返回View(model);'不要试图设置'value'属性。 –

+0

感谢@BrianAlltop,但没有奏效。 – FllnAngl

在完全放弃剃刀之后,我决定使用javascript填充我的EditorFor的值。

做:

var today = new Date(); 
var dd = today.getDate(); 
var mm = today.getMonth() + 1; //January is 0! 
var yyyy = today.getFullYear(); 
$('#opgevoerd').val(dd + "/" + mm + "/" + yyyy); 

感谢您的帮助:)

+0

认真? '[DisplayFormat(DataFormatString =“{0:dd/MM/yyyy}”,ApplyFormatInEditMode = true)] public DateTime Opgevoerd {get;组; },在将模型传递给视图和'@ Html.EditorFor(model => model.Opgevoerd,new {htmlAttributes = new {@class =“form)之前,在GET方法中将值设置为DateTime.Today; (为什么当你只需要一个日期组件时设置'type =“DateTime”) –

+0

因为在数据库中它被设置为日期时间(我没有创建数据库),所以我设置日期时间,但是我的同事只想要日期。由于我是一名实习生,所以我对asp.net相对陌生,所以我并不知道你的意思,我问我的主管,他告诉我使用javascript,因为opgevoerd不是模型。它是模型中的一个项目。对不起,我没有按照你的方式去做。 – FllnAngl

+0

数据库(或模型)'DataTime'类型与HTML-5'type =“datetime”'完全无关 - 它用于生成浏览器HTML-5 datetimepicker(它只支持有限的浏览器)。你不仅需要javascript - 它愚蠢的做法(考虑当使用者输入值时会发生什么,但你需要返回视图 - 输入的用户将会丢失)。我知道'Opgevoerd'是你模型中的一个属性 - 如果它不是,它就不会工作:) –