Asp.net mvc MVC Razor-默认值为文本框类型日期的当前日期
我有一个Asp.net mvc MVC Razor-默认值为文本框类型日期的当前日期,asp.net-mvc,asp.net-mvc-4,date,razor,Asp.net Mvc,Asp.net Mvc 4,Date,Razor,我有一个文本框,类型为日期。我正在尝试将文本框的默认值设置为当前日期 @Html.TextBoxFor(x => x.Date, new { @id = "Date", @type = "date", @value = DateTime.Now.ToShortDateString() }) 上面的行没有设置默认值。如何将默认值设置为当前日期?正如Stephen Muecke所说,您需要在模型上设置属性的值 // i
文本框
,类型为日期
。我正在尝试将文本框的默认值设置为当前日期
@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
方法(如@Html.TextBoxFor()
)时,id
和name
属性应自动分配给属性名称,因此不需要显式设置id
属性。在视图中进行管理是更好的方法
@Html.TextBoxFor(x=> x.Date, new { @Value = @DateTime.Now.ToShortDateString() })
另一种解决方案:
@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);
});
这对我有用。记住根据您的型号更改“日期”
如果你也需要时间,就用这个
在将属性日期
传递到视图之前,只需在模型中设置日期的值。我怀疑OP可能不希望属性日期
成为字符串。相反,将属性设置为DateTime.Now
或DateTime.Today
,并使用@Html.TextBoxFor(m=>m.Date,{0:dd-MM-yyyyy},new{@class=“form control”})
仅设置@type=“Date”
如果要呈现浏览器日期选择器(在这种情况下,格式必须是yyyyyy-MM-dd
)谢谢@StephenMuecke我确实希望它采用日期
格式…我使用了{0:yyyy-MM-dd}
&然后它才起作用..因为HTML5输入日期需要RFC3339格式的日期@阿努普,请注意IE在所有浏览器中使用它都有一些问题,因此值得测试。@StephenMuecke,我总是希望数据在发送到视图时是字符串。所有格式化都发生在控制器中,因此视图中存在非常小的逻辑。欢迎使用StackOverflow。谢谢你的回答。最好以我所做的方式格式化代码,以便于阅读。非常适合我的需要。这应该是公认的答案。直截了当且易于实现。不过,在服务器端进行任何处理总是更好的。