ASP.NET MVC2:通过 HTTP GET 进行日期时间模型绑定
我在从 QueryString 绑定日期时遇到一些问题:
我有以下模型
public class QueryParms
{
public DateTime Date { get; set; }
}
和以下控制器操作:
public ActionResult Search( QueryParms query );
我有一个表单,其中有一个可以输入日期的字段。如果表单是 FormMethod.Post,一切都很好,我的日期已正确绑定到我的模型。
如果表单是 FormMethod.Get,则它不再起作用。日期保留为默认值(01/01/0001)
我认为这是一个文化问题: 当我查看值提供程序时,FormValueProvider 为我的日期设置了文化属性:{fr-FR}。 QueryStringValueProvider 没有设置区域性属性。
有没有办法设置这个属性?
I'm getting some trouble binding a date from QueryString :
I have the following model
public class QueryParms
{
public DateTime Date { get; set; }
}
And the following controller action :
public ActionResult Search( QueryParms query );
I have a form, with a field where I can type my date. If the form is FormMethod.Post, everything is fine, my date is correctly bound to my model.
If the form is FormMethod.Get, it is not working anymore. The date is left to the default value (01/01/0001)
I think it is a culture issue :
When i look into the value provider, the FormValueProvider has a culture property set for my date : {fr-FR}. The QueryStringValueProvider doesn't have the culture property set.
Is there a way to set this property ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这似乎是设计使然:
以及解决方案(来自:ASP.net-mvc(2) 中 Modelbinding double 的 CultureInfo 问题)是编写一个新型号活页夹:
This seems to be by design :
And the solution (from: CultureInfo issue with Modelbinding double in asp.net-mvc(2)) is to write a new model binder :