MVC Razor - 作为文本框类型日期的当前日期的默认值
我有一个Textbox
,类型为date
。我正在尝试将textbox
的默认值设置为当前日期。MVC Razor - 作为文本框类型日期的当前日期的默认值
@Html.TextBoxFor(x => x.Date, new { @id = "Date", @type = "date",
@value = DateTime.Now.ToShortDateString() })
上述行不设置默认值。如何设置当前日期的默认值?
正如Stephen Muecke所说,您需要在模型上设置属性值。
// in controller method that returns the view.
MyModel model = new MyModel();
model.Date = DateTime.Today;
return View(model);
而且你的剃须刀是:
@Html.TextBoxFor(x => x.Date, "{0:yyyy-MM-dd}", new { @class = "form-control", @type = "date"})
注意使用For
方法时id
和name
属性应该被自动分配属性名称,如@Html.TextBoxFor()
,所以你不” t需要明确设置id
属性。
我怀疑OP可能不希望财产'日期'是'字符串'。相反,将属性设置为DateTime.Now或DateTime.Today并使用@ Html.TextBoxFor(m => m.Date,“{0:dd-MM-yyyy}”,new {@class =“如果你想渲染浏览器的日期选择器(在这种情况下格式必须是'yyyy-MM-dd') – 2014-10-17 05:23:50
谢谢@StephenMuecke我确实希望它在'日期'格式...我用'{0:yyyy-MM-dd}'&然后只有它工作..因为HTML5输入日期期望RFC3339格式的日期....! – Anup 2014-10-17 06:20:30
@Anup,请注意IE浏览器在使用它的时候有一些问题值得所有浏览器测试。 – 2014-10-17 06:36:47
这是更好的方式在视图来管理
@Html.TextBoxFor(x=> x.Date, new { @Value = @DateTime.Now.ToShortDateString() })
欢迎来到StackOverflow。感谢您的回答。最好是按照您所看到的方式对代码进行格式化,以便于阅读。 – GreenAsJade 2014-10-17 05:30:12
适合我需要的作品 – Scanner 2016-01-26 11:56:07
这应该是公认的答案。直接点,更容易实施。 – CyberNinja 2017-06-26 13:19:44
另一种解决方案:
@Html.TextBoxFor(model=>model.CreatedOn, new{@value= System.DateTime.Now})
它工作在我的结束,相信它会在你的工作。
$(document).ready(function() {
var dateNewFormat, onlyDate, today = new Date();
dateNewFormat = today.getFullYear() + '-';
if (today.getMonth().length == 2) {
dateNewFormat += (today.getMonth() + 1);
}
else {
dateNewFormat += '0' + (today.getMonth() + 1);
}
onlyDate = today.getDate();
if (onlyDate.toString().length == 2) {
dateNewFormat += "-" + onlyDate;
}
else {
dateNewFormat += '-0' + onlyDate;
}
$('#mydate').val(dateNewFormat);
});
在将模型传递给视图之前,只需在模型中设置Date的值即可。 – 2014-10-17 04:56:41