2016-11-01 2 views
0

kendo datepickerforを使用してASP.NET MVC 5のビューからコントローラに日付を渡しています。問題は、kendo datepickerforがデフォルトの日付、つまり - 1/1/0001 12:00:00 AMをコントローラに渡していて、選択した日付を渡していないことです。剣道DatePickerForから日付をAjax.BeginForm()でモデルに渡す

モデル(Bill.cs)

public DateTime BillTransactionDate { get; set; } 

ビュー(Bill.cshtml)

 @using (Ajax.BeginForm("_SaveManualBillUpload", "Bill",null, new AjaxOptions { OnBegin = "return OnBillTransBegin()", HttpMethod = "POST", OnSuccess = "OnBillTranSuccess" }, new { @id = "frmBillTransaction" })) 
{ 
@(Html.Kendo().DatePickerFor(m => m.BillTransactionDate).Format("MM/dd/yyyy").HtmlAttributes(new {data_toggle = "tooltip", 
              data_placement = "bottom", data_trigger = "focus", title = MW.Resource.Resources.HelpTransactionDate }) 
              )} 

BillController

public ActionResult _SaveManualBillUpload(BillTransactionDetail TransactionDetailModel) 
    {} 

ここTransactionDetailModelで、私は剣道datepickerforのデフォルト値を取得しています剣道の日付選択の代わりに日付を指定します。私が12未満の日付を選択すると、適切な日付が選択されますが、12より大きい日付の場合、剣道は 1/1/0001として日付を渡しています。間違いを指摘してもらえますか? KendoErrorImage

+0

いいえ、何も渡されていないことを意味します(プロパティはデフォルト値に初期化されます) –

+0

@StephenMuecke 12より小さい日付を選択すると、適切な日付が渡されますが、 12の場合、デフォルト値を渡しており、** ModelState.IsValid **はfalseです。 ** '11/30/2016 'という値はBillTransactionDate **には無効です。日付の書式に問題があるようです。 –

+0

あなたのサーバー上のカルチャは、剣道のオプションで指定した形式( 'MM/dd/yyyy')と一致しません。あなたのサーバーの文化は 'dd/MM/yyy'だと思います。 –

答えて

0

最後に、誰かが同様の問題を抱えている場合、私は私の答えを得ました。 コントローラ内の剣道の日付ピッカーからモデルを塗りつぶす日付の文化を設定するだけです。

Thread.CurrentThread.CurrentCulture= System.Globalization.CultureInfo.GetCultureInfo("en-us"); 

希望すると助かります!

関連する問題