我有一个MVC CRUD站点,它有一个Date Approved Textbox。创建新条目时,它会正确存储为" dd-MM-yyyy"在SQL Sever中。当我想更新条目时,“必需日期”文本框包含日期和12:00:00 AM。我猜测这是因为SQL Server是日期数据类型而.Net是DateTime。知道怎么摆脱凌晨12点00分吗?
尝试失败......
我已尝试将其添加到我的viewmodel
[DisplayFormat(DataFormatString = "{0:MM-dd-yyyy}", ApplyFormatInEditMode = true)]
[Required(ErrorMessage="Required")]
[DataType(DataType.Date)]
[Display(Name="Date Requested")]
public DateTime? Date_Requested { get; set; }
还有...
string test = Convert.ToDateTime(model.Date_Requested).ToString;
修改 html文本框
@Html.TextBoxFor(model => model.Date_Requested,new {@class="datepicker" })
编辑 JQuery DatePicker
$(".datepicker").datepicker({
onSelect: function () {
$(this).valid();
}
});
答案 0 :(得分:2)
您可以使用ToShortDateString添加其他媒体资源:
public string DateRequestedShortDate
{
get
{
return Date_Requested == null ? "" : Date_Requested.ToShortDateString();
}
}
或者只是将文本框值设置为ShortDateString以保持绑定
答案 1 :(得分:1)
TextBoxFor
不尊重格式属性(不确定这是出于预期还是错误)。您可以使用EditorFor
:
@Html.EditorFor(model => model.Date_Requested,new {@class="datepicker" })
或在TextBoxFor
中设置格式:
@Html.TextBoxFor(model => model.Date_Requested,
new {
@class="datepicker",
@Value = Model.Date_Requested.ToString("MM-dd-yyyy")
});
答案 2 :(得分:0)
从上面扩展琼斯的回答。
public string DateRequestedShortDate
{
get
{
return Date_Requested == null ? "" : Date.Parse(Date_Requested).ToShortDateString();
}
}
Parse不会搞砸插入SQL的数据,希望它有所帮助。