2016-05-09 28 views
1

私は多言語のウェブサイトを持っています。 しかし私は私の文化をアラビア語に変更すると、フォーム提出後に日付を送信しません。 は、これは私のモデルクラス日付ピッカーはアラビア文化の日付を設定していません

 [Required(ErrorMessage = "Company foundation date is required.")] 
     [DataType(DataType.Date)] 
     [DisplayFormat(DataFormatString = "{0:d MMM yyyy}", ApplyFormatInEditMode = true)] 
     public DateTime CompanyFoundationDate { get; set; } 

そして、私の見解である

@Html.TextBoxFor(m => m.CompanyFoundationDate, new { @class = "form-input", id = "foundationDate" }) 

とjQuery内部で私が書いたこの私がではなく、英語に文化を変更するとそれが正常に動作している

 $.datepicker.setDefaults($.datepicker.regional['en']); 
     $("#foundationDate").datepicker(
     { 
      dateFormat: 'd M yy', 
      changeMonth: true, 
      changeYear: true 
     }); 
     $("#foundationDate").datepicker('setDate', '@(Model.CompanyFoundationDate.ToDatePickerFormate())'); 
     $("#foundationDate").datepicker('option', 'maxDate', new Date()); 

アラビア語私は日付を選択しているアラビア語で

は、2009年2月12日である、しかし、私の行動で{0001-01-01T00:00:00}

答えて

0
var cultureInfo = CultureInfo.CreateSpecificCulture("ar-SA"); 
cultureInfo.DateTimeFormat.Calendar = cultureInfo.OptionalCalendars[5]; 

var dateTimeString = new String(new[] { 
    '1', 
    '4', 
    '-', 
    'ي', 
    'و', 
    'ل', 
    'ي', 
    'و', 
    '-', 
    '2', 
    '0', 
    '1', 
    '5', 
    ' ', 
    '0', 
    '4', 
    ':', 
    '4', 
    '4', 
    ':', 
    '5', 
    '1', 
    ' ', 
    'م' 
}); 
var dateTime = DateTime.Parse(dateTimeString, cultureInfo); 


The resulting DateTime is: 

2015-07-14T16:44:51 

If you want to use DateTime.ParseExact the format is d-MMMM-yyyy hh:mm:ss tt: 

var dateTime = DateTime.ParseExact(dateTimeString, "d-MMMM-yyyy hh:mm:ss tt", cultureInfo); 

You should also consider using DateTime.TryParse or DateTime.TryParseExact for better flow of code if you encounter an invalid formatted string. 
+0

Modelクラスでどのように使用できますか。表示します。 –

0

を得たが、私はアラビア語に私の文化を変更すると、次にフォームの後には、日付に

を送信しない送信します

'en'地域設定の入力フォームを送信しようとしているためです。

$.datepicker.setDefaults($.datepicker.regional['en']); 
関連する問題