DatePickerFor不起作用

时间:2016-01-21 09:16:19

标签: asp.net-mvc datepicker telerik

我使用telerik DatePickerFor获取datetime值。这是我的模型类:

grunt run:android

这是我的观点类:

  public class Kisi
{

    [Display(Name="date1")]
    public DateTime date1{ get; set; }

    [Display(Name = "date2")]
    public DateTime date2 { get; set; }

    [Display(Name = "date3")]
    public DateTime date3{ get; set; }

}

这是我的控制器:

//most parts ommited for brevity
@model LojmanMVC.Domain.Kisi

@{
ViewBag.Title = "KisiOlustur2";
}


<h2>KisiOlustur2</h2>

@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)

<fieldset>

    <!-- date1-->
    <div>
        <div class="editor-label">
            <label>date1? </label>
        </div>
        <div class="editor-field">


            @(Html.Kendo().DatePickerFor(m=>m.date1)
            .Name("dtpickerMemuriyetBaslama")
            .Min(new DateTime(1900, 1, 1))
            .Max(new DateTime(2099, 12, 31))
            .Value(DateTime.Today)

             )

            <br />

            <!-- Html.ValidationMessageFor(model => model.MemuriyetBaslamaTarihi)-->
        </div>
    </div>


    <div id="tey" style="display:none">
        <div class="editor-label">
            @Html.LabelFor(model => model.date2)
        </div>
        <div class="editor-field">
            @(Html.Kendo().DatePickerFor(m=>m.date2)
            .Name("dtAskerlikBaslama")
            .Min(new DateTime(1900, 1, 1))
            .Max(new DateTime(2099, 12, 31))
            .Value(DateTime.Today)

            )


            @Html.ValidationMessageFor(model => model.AskerlikBaslangicTarihi)
        </div>
    </div>


    <div id="hey" style="display:none">
        <div class="editor-label">
            @Html.LabelFor(model => model.date3)
        </div>
        <div class="editor-field">
            @(Html.Kendo().DatePickerFor(m=>m.AskerlikBitisTarihi)
            .Name("dtAskerlikBitis")
            .Min(new DateTime(1900, 1, 1))
            .Max(new DateTime(2099, 12, 31))
            .Value(DateTime.Today)

            )

    <p>
        <input type="submit" value="Oluştur" />
    </p>

        </div>
    </div>

在sisi变量,date1,date2和date3为空,即使我输入了它们。我该如何解决?提前谢谢。

1 个答案:

答案 0 :(得分:1)

首先,我建议添加到您的模型中的一件事如下:

$j("["+parmName+"]").each(function(){
    var value = $j(this).attr(parmName);
    if($j("["+parmName+"='"+ value + "']").length > 1) {
        console.log('duplicate', parmName, 'for value', value);
    }
});

您可以根据自己的喜好自定义格式字符串以及错误消息。这将确保用户输入的内容实际上必须是正确格式的日期。

但是,我认为你的问题是你实际上没有将日期从视图传递给控制器​​,你需要给你的DatePicker一个名字,然后将这个名字传递给控制器​​,例如:

[DataType(DataType.Date, ErrorMessage = "Please enter a valid date.")]
[DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)]
[Display(Name="date1")]
public DateTime date1{ get; set; }