使用jQuery datepicker从ASP MVC @ Html.TextBoxFor Control中删除时间

时间:2013-03-29 17:07:55

标签: jquery asp.net-mvc asp.net-mvc-3 datepicker

如何在使用jQuery .datepicker()时阻止显示时间?以下是两个属性(采用日期和到期日期)的模型部分

    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
    [DisplayName("Expiration Date")]
    public string ExpirationDate { get; set; }

    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
    [DisplayName("Date Taken")]
    public string DateTaken { get; set; }

使用我正在处理的视图上的@Html.EditorFor控件可以正常工作。但是,当我从中改变控制时:

 @Html.EditorFor(model => model.DateTaken)

到此:

@Html.TextBoxFor(m => m.DateTaken, new { id = "dtkn" })

为了使其正常工作(标记哪个控件应用了datepicker):

<script>
    $(function () {
        $("#dtkn").datepicker('setDate');
        $("#exp").datepicker('setDate');
    });

    $.datepicker.setDefaults({
        buttonImageOnly: true,
        buttonImage: '<%=Url.Content("~/Content/images/magnify.gif") %>',
        defaultDate: -1,
        gotoCurrent: true,
        prevText: "<< Prev",
        nextText: "Next >>"
    });
</script>
突然间,时间开始出现了。有什么建议?

编辑

我尝试过以下格式,但没有一种可以使用:

$("#dtkn").datepicker({ dateFormat: 'dd-mm-yy' }).val();
$("#dtkn").datepicker({ dateFormat: 'yy-mm-dd' });
$("#dtkn").datepicker('getDate').format('yyyyMMdd');

和此:

$("#dtkn").datepicker('getDate').datepicker('dd/mm/yy');
$('#dtkn').datepicker('option', { dateFormat: 'd MM y' });

以下是我看到Chrome调试控制台的错误:

Uncaught TypeError: Cannot call method 'datepicker' of null 

3 个答案:

答案 0 :(得分:15)

编辑:MVC4用户可以使用此

你想要这个重载

@Html.TextBoxFor(m => m.DateTaken, "{0:MM/dd/yyyy}", new { id="dtkn" })

如果你愿意手动放弃助手

<input type="text" value="@Model.DateTaken.ToString("MM/dd/yyyy")" id="dtkn" />

答案 1 :(得分:3)

使用@Html.TextBox而不是@Html.TextBoxFor我能找到一个有效的重载。

@Html.TextBox("DateTaken", Model.DateTaken.ToString("MM/dd/yyyy"), new { id = "dtkn" })

答案 2 :(得分:0)

@ Html.TextBoxFor(m =&gt; m.DateTaken,&#34; {0:d / M / yyyy}&#34;,new {id =&#34; dtkn&#34;})

[DisplayFormat(ApplyFormatInEditMode = true,DataFormatString =&#34; {0:d / M / yyy}&#34;)] [DisplayName(&#34;拍摄日期&#34;)] public string DateTaken {get;组; }