2017-08-31 8 views
0

この問題のために私は私の頭を引っ張っています。私はmvcフィールドでjquery datetimepickerを使用しようとしていますが、何らかの理由で値がモデルに渡されません。私は、フィールド上の検証を実行する場合は、値が「日付」でなければならないと述べている。ここ MVCモデルはJquery DateTimePickerからの値を受け付けません

は私のテキストボックスです:

<div class="col-lg-3"> 
     @Html.Label("From") 
     @Html.TextBoxFor(m => Model.From, new {id = "startDate", @class = "form-control"}) 
</div> 
<div class="col-lg-3"> 
     @Html.Label("To") 
     @Html.TextBoxFor(m => Model.To, new {id = "endDate", @class = "form-control"}) 
</div> 

私のjavascript:

$("#startDate").datetimepicker({ 
     format: 'DD/MM/YYYY H:00:00', 
     locale:'da' 
    }); 
    $("#endDate").datetimepicker({ 
     format: 'DD/MM/YYYY H:00:00', 
     locale: 'da' 
    }); 

そして最後に、私のモデル:

public class ScheduleHoursModel 
{ 
    public DateTime From { get; set; } 

    public DateTime To { get; set; } 

    public bool Recurring { get; set; } 
} 

ここに何か不足していますか?

+0

エラーはクライアント側のエラーです(つまり、 'jquery.validate.unobtrusive.js'を使用しています)。バリデータを再設定する必要があります(デフォルトで' MM/dd/yyyy'形式で日付を検証します)。これはちょうどサーバー側のエラーです。その場合、サーバーの文化は 'dd/MM/yyyy'形式の日付を受け入れないので、文化を変更したり、カスタムModelBinderを使用して日付をバインドする必要があります。 –

答えて

0

あなたは、外側のdivはなく、このようなテキストボックス自体参照する必要があります。フォーム

<div id="startDate">    
    @Html.EditorFor(model => model.From) 
</div> 

$("#startDate").datetimepicker({ 
    format: 'DD/MM/YYYY H:00:00', 
    locale:'da' 
}); 

は、プロパティFromの値を持っており、結合モデルは、コントローラに送信することができるようになります。あなたのケースでは値がstartDateという名前の入力に割り当てられていましたが、私が理解できる限り、このプロパティーはstartDateです。あなたのモデルにはありません。

私はそれが役に立ちそうです。

+1

あなたはその理由です私は初期段階で脱毛しませんでした - ありがとう! – Jannik

+0

これはナンセンスで、OPの問題とは関係ありません。 –

関連する問題