2011-11-08 4 views
0

私は開発環境でうまく動作するMVC3アプリケーションをデプロイしました。これは、開発マシンの日付形式がdd/mm/yyyyであるためです。しかし、いつアプリケーションがサーバーにデプロイされたのかは、サーバーの日付形式がmm/dd/yyyyであるため、サーバー側で有効な日付でエラーが発生するようになります。今私の質問は、私はサーバーを構成する必要がありますか?またはこの特定の文化のためのIIS 7.0のみ?答えが何であっても、どうすればいいのか教えてください。私は、Windows Server 2008 R2で作業し、あなたのコードの文化に依存しないために何ができるか7.5MVC3アプリケーションでカルチャ設定を構成する

+0

どこから来たのですか? Webアプリケーションを開発するときには、システムの文化*を使用するべきではありません。結局のところ、ユーザーと同じではないかもしれません。 –

+0

日付はテキスト入力から来ており、クライアント側のフォーマットを検証するjqueryのdatepickerもあり、クライアント側のフォーマットの検証もうまく機能し、サーバ側の検証での問題 – Jorge

+0

入力ユーザーからのものであれば、おそらくユーザーのカルチャーを使用しているはずです。 –

答えて

2

を追加し、同じ文化が常に使用されていることを確認する最も簡単な方法は、あなたのベースコントローラでそれを設定することです:

public override void OnActionExecuting(ActionExecutingContext filterContext) 
{ 
    Thread.CurrentThread.CurrentUICulture = 
     Thread.CurrentThread.CurrentCulture = new CultureInfo(1033); //en-us 
} 

しかし、それをあなたのコントローラーを

public class UseEnglishCultureAttribute : ActionFilterAttribute 
{ 
    public override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
     Thread.CurrentThread.CurrentUICulture = 
      Thread.CurrentThread.CurrentCulture = new CultureInfo(1033); //en-us 
    } 
} 

とタグ:より強固なアプローチは、新たなアクションフィルタを作成することです

[UseEnglishCulture] 
public class BaseController : Controller 
{ 
} 
0

をIISよ:

  1. 右クリックプロジェクト、そして後藤のプロパティ] - > [コード分析。 Microsoftグローバリゼーションルールをオンにし、コードを分析します。

  2. DateTimeを使用しているすべての場所で警告が表示され、文化が指定されていません。独立した形式のものでなければならないものについては、CultureInfo.InvariantCulture

関連する問題