【发布时间】:2017-10-04 21:05:30
【问题描述】:
我正在尝试处理用户输入的日期值,我想提示用户以这种格式输入日期:dd/MM/yyyy
我想做什么:
我在这个问题中阅读并实施了 Darin 的答案: Format datetime in asp.net mvc 4
这是我的实现:
在 Global.asax 中
(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var displayFormat = bindingContext.ModelMetadata.DisplayFormatString;
var value = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
if (!string.IsNullOrEmpty(displayFormat) && value != null)
{
DateTime date;
displayFormat = displayFormat.Replace
("{0:", string.Empty).Replace("}", string.Empty);
if (DateTime.TryParse(value.AttemptedValue, CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
{
return date;
}
else
{
bindingContext.ModelState.AddModelError(
bindingContext.ModelName,
string.Format("{0} is an invalid date format", value.AttemptedValue)
);
}
}
return base.BindModel(controllerContext, bindingContext);
}
模型出发日期:
[Required(ErrorMessage = "Departure date is required")]
[Display(Name = "Departure Date")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public DateTime DepartureDate { get; set; }
在视图中:
<div class="col span-1-of-2">
@Html.LabelFor(m => m.DesignVacation.DepartureDate)
@Html.EditorFor(m => m.DesignVacation.DepartureDate)
</div>
它以月(毫米)开头,但我想要的是这种格式: dd/MM/yyyy
如何使用 editorFor(如果可能的话使用 textboxFor)获取此格式。
【问题讨论】:
标签: c# asp.net asp.net-mvc date datetime