2017-09-15 27 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

非常感谢你,这对我很有用! –