我的格式是日期时间选择器:
<div class="input-group date" data-custom-datepicker="true">
<div class="input-group-addon datepicker-custom-btn">
<span class="glyphicon glyphicon-calendar"></span>
</div>
<input type="text" class="picker" value="">
<input type="text" name="SelectionDeadline" class="form-control datepicker-custom valid"
value="" data-val="true" tooltip="DD-MM-YYYY" id="SelectionDeadline"
aria-describedby="SelectionDeadline-error" aria-invalid="false">
我想要的格式是:
$('#SelectionDeadline').datetimepicker({
format: 'DD-MM-YYYY HH:mm'
});
我的模特有道具:
public DateTime? SelectionDeadline { get; set; }
因为此字段可以为null,所以当我提交日期设置为"20-09-2016 13:07"
在模型中SelectionDeadline
道具是null
,但当我尝试通过Request.Form
获取价值时:
var form = Request.Form;
var val = form["SelectionDeadline"];
val是"20-09-2016 13:07"
所以我的问题是为什么ASP无法将此值传递给DateTime?
,这是因为可空类型或"dd-MM-yyyy"
格式?
@EDIT:
所以,基本上我现在所做的就是修改我的ViewModel
:
public string selectionDeadlines { get; set; }
private DateTime? selectionDeadlined { get; set; }
public DateTime? SelectionDeadline
{
get
{
if (selectionDeadlined == null)
{
DateTime dt;
selectionDeadlined = DateTime.TryParseExact(selectionDeadlines, "dd-MM-yyyy hh:mm", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt) ? dt : null as Nullable<DateTime>;
}
return selectionDeadlined;
}
set
{
selectionDeadlined = value;
}
}
现在我将从datetime picker
下载的值保存为字符串selectionDeadlines
,这不是完美的解决方案,但如果我能找到更好的信息,我会告诉您!
答案 0 :(得分:1)
因为'DD-MM-YYYY HH:mm'格式, 使用
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
内部模型