2012-02-07 8 views
0

私は最近POSTからGETに変更したASP.NET MVCサイトにフォームを用意しています。しかし、私がこれを行ったとき、関連するアクションのDateTimeパラメータが、en-USではなく、GETのために異なるculture-en-USを効果的に使用していることに気付きました。だから、基本的に日と月が切り替わります。DateTimeローカライゼーションのカスタムModelBinder

以下の記事で私はこれがなぜ行われたのか説明しましたが、投稿前にフォームを修正するためにPOSTまたはJSを使用しないで克服する方法を見つける必要がありました。

http://xhalent.wordpress.com/2011/05/14/localization-of-dates-in-asp-net-mvc/ http://weblogs.asp.net/melvynharbour/archive/2008/11/21/mvc-modelbinder-and-localization.aspx

私はちょうど理論アウト裁判へのDateTimeのカスタムバインダーを作成し、そうすることで、問題を修正しているようです。誰でもこの作品の理由を説明できますか?

カスタムバインダーがDateTimeModelBinderクラスのglobal.ascx.csに基本的に

ModelBinders.Binders.Add(typeof(DateTime), new DateTimeModelBinder()); 

と、この次の行だった

public class DateTimeModelBinder : IModelBinder 
{ 
    public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) 
    { 
     return bindingContext.Model; 
    } 
} 

答えて

0

JSはこれを行うための唯一の方法であるようです。上記の答えは、Modelのコンストラクタによって設定された値を単純に返すことだと私は思っていました。

関連する問題