安德烈,
显示格式主要用于您在视图上使用的 Html 帮助程序。
您需要的是(正如@CodeCaster 正确提到的)是 DateTime 类型的自定义模型绑定器。自定义模型绑定器可以按类型注册,因此每当 MVC 运行时看到相同类型的控制器操作的参数时,它会调用自定义模型绑定器以正确解释发布的值并创建类型,
以下是 DateTime 的示例自定义模型绑定器类型
public class DateTimeModelBinder : DefaultModelBinder
{
private string _customFormat;
public DateTimeModelBinder(string customFormat)
{
_customFormat = customFormat;
}
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var value = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
// use correct fromatting to format the value
return DateTime.ParseExact(value.AttemptedValue, _customFormat, CultureInfo.InvariantCulture);
}
}
现在您必须告诉 MVC 使用您的新模型绑定器来处理 DateTime。您可以通过在 Application_Start 注册新的模型绑定器来做到这一点
protected void Application_Start()
{
//tell MVC all about your new custom model binder
var binder = new DateTimeModelBinder("dd.MM.yyyy");
ModelBinders.Binders.Add(typeof(DateTime), binder);
ModelBinders.Binders.Add(typeof(DateTime?), binder);
}
归功于这篇关于日期时间的自定义模型绑定的优秀文章(http://blog.greatrexpectations.com/2013/01/10/custom-date-formats-and-the-mvc-model-binder/)
希望这有助于您开始正确的部分