Bru*_*uno 5 javascript c# ajax asp.net-mvc
我有一个MVC操作,它接受一个参数a DateTime并且如果我传递"17/07/2012"它会抛出一个异常,说param为null但不能有空值但是如果我传递01/07/2012它被解析为Jan 07 2012.
我将日期传递给ajax调用DD/MM/YYYY格式,我应该依赖MM/DD/YYYY格式,尽管配置文化web.config?
这是一个简单的方法,只有一个日期参数.
在Asp.NET-MVC中有三个安全选项来发送日期参数:
YYYY/MM/DD它是国际日期的ISO标准.使用POST请求而不是GET请求.
如果要更改默认Model Binder绑定日期的方式:
您可以使用IModelBinder更改默认模型绑定器以使用用户区域性
public class DateTimeBinder : IModelBinder
{
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var value = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
var date = value.ConvertTo(typeof(DateTime), CultureInfo.CurrentCulture);
return date;
}
}
Run Code Online (Sandbox Code Playgroud)
而在Global.Asax写道:
ModelBinders.Binders.Add(typeof(DateTime), new DateTimeBinder());
ModelBinders.Binders.Add(typeof(DateTime?), new DateTimeBinder());
Run Code Online (Sandbox Code Playgroud)
在这个出色的博客上阅读更多信息,该博客描述了Mvc框架团队为所有用户实施默认文化的原因.
| 归档时间: |
|
| 查看次数: |
2330 次 |
| 最近记录: |