2017-09-15 58 views
-1

首先,請原諒我的英文。 我正在做MVC中的Web應用程序,並有綁定jQuery datepicker模型本質的問題。如果我將日期選擇器綁定到模型特性(如下面的代碼中的「測試」),一切正常,但我有一個包含我自己的類的模型,並且該類包含一個屬性,我需要綁定datepicker並且我不知道如何Index.cshtmlMVC綁定jQuery datepicker到本質

的...

視圖模型

public class MainViewModel 
{ 
    //ViewModel 
    public Filtr Fil { get; set; } 
    public DateTime test { get; set; } 

} 

類的視圖模型

public class Filtr 
{ 
    [Display(Name = "Date from:")] 
    public DateTime? DatumFrom { get; set; } 

    [Display(Name = "Date to:")] 
    public DateTime? DatumTo { get; set; } 
} 

部分

@model aAKV.Models.MainViewModel 
. 
. 
.  
<script> 
    $(document).ready(function() { 
     jQuery('#Fil.DateFrom').datetimepicker({ 
      lang: 'cs', 
      formatDate: 'd.m.Y', 
      formatTime: 'H:i', 
      format: 'd.m.Y H:i', 
      dayOfWeekStart: 1, 
      step: 15, 
      timepicker: true, 
      mask: true 
     });    

    }); 
</script> 
} 
@using (Html.BeginForm()) 
{ 

<div class="form-group"> 
    <div class="col-sm-3"> 

     @Html.LabelFor(Model => Model.Fil.DateFrom) 
      @Html.TextBoxFor(model => model.Fil.DateFrom, new { @class = "date-picker" }) 
. 
. 
. 

感謝您的任何幫助

+1

看看你的代碼生成的html--它的'''''''''''''''''''''''' 。(dot) –

回答

0

你的代碼是不工作的原因是因爲@Html.TextBoxFor()創建了Fil_DateFrom作爲ID的輸入。不是Fil.DateFrom

您可以嘗試根據您的需要任意選擇:

1)你可以把它改成:$('#Fil_DateFrom').datetimepicker({

2)但是,上述id可能會混淆一些別人看你的代碼,使他們想知道Fil_DateFrom是從哪裏來的。所以,你可以指定一個唯一的id到輸入這樣的:

@Html.TextBoxFor(model => model.Fil.DateFrom, new { id="date-from", @class ="date-picker"}) 

然後在你的腳本$('#date-from').datetimepicker({

3)另一種選擇,目標爲基礎,在class將是:

$('.date-picker').datetimepicker({:這將添加datepicker全部頁面上的輸入與date-picker類。如果您希望不同的settings到不同的datepickers,此方法將不起作用。

假設您要禁用DateFrom datepicker的週末,但允許DateTo datepicker的週末。然後你必須爲這兩個輸入分配獨特的id,並按照方法2.

0

該ID將呈現不同(由adiga解釋)。此外,如果您計劃在屏幕上使用多個日期選擇器,最好使用css類而不是ID,以便一次應用於所有日期選擇器。

請使用CSS類選擇,而不是

jQuery('.date-picker').datetimepicker({

+0

非常感謝你,這對我很有用! –