Omu*_*Omu 1 asp.net asp.net-mvc
来自POST的DateTime正确绑定(根据我的计算机格式)
但来自GET的DateTime值无法正确绑定,它使用的格式不同
my format is dd.MM.yyyy, in GET it uses MM.dd.yyyy instead
I don't have this problem if I use the en-US format (which is MM/dd/yyyy)
Run Code Online (Sandbox Code Playgroud)
有谁知道如何解决这个问题?
这是一个mvc bug吗?(绑定获取请求时不考虑Culture)
不,它似乎不是一个bug.您可以在此处获取更多详细信息:MVC DateTime绑定具有不正确的日期格式
我一直在使用以下ModelBinder来解决这个问题.
public class CurrentCultureDateTimeBinder : IModelBinder
{
private const string PARSE_ERROR = "\"{0}\" is not a valid date";
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
ValueProviderResult valueProviderResult = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
if (valueProviderResult == null) return null;
var date = bindingContext.ValueProvider.GetValue(bindingContext.ModelName).AttemptedValue;
if (String.IsNullOrEmpty(date))
return null;
bindingContext.ModelState.SetModelValue(bindingContext.ModelName, bindingContext.ValueProvider.GetValue(bindingContext.ModelName));
try
{
return DateTime.Parse(date);
}
catch (Exception)
{
bindingContext.ModelState.AddModelError(bindingContext.ModelName, String.Format(PARSE_ERROR, bindingContext.ModelName));
return null;
}
}
}
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你.
| 归档时间: |
|
| 查看次数: |
1964 次 |
| 最近记录: |