4

我有以下迄今为止工作正常的日期选择器:

$('.tmmdatepicker').datepicker({ showOn: "button",
                buttonImage: "../Content/images/ico-calendar.png",
                buttonImageOnly: true,
                dateFormat: "d M, yy",
                showAnim: "fadeIn",
                autosize:true
            });

这是剃刀视图:

<tr>
    <td>Start date:</td>
    <td> @Html.EditorFor(m => m.CurrentFilter.StartTime, 
        new { @class = "tmmdatepicker" , @style = "width:80px" })
   </td>                 

到目前为止它运行良好,但是第一次加载视图时,时间不会以给定格式(d M,yy)格式化,只有在我使用一次 datetimepicker 之后,EditorFor 的内容才会更新为规则。

所以,当我第一次进入网站时:

(http://i.imgur.com/nAm56.png)

在我使用按钮选择日期之后:

在此处输入图像描述<--- 这就是我想在一开始看到它的方式。

那么,有没有办法在一开始就加载这种行为?(对不起,我不能包含图片的直接链接)

4

2 回答 2

2

您可以使用 EditorTemplates。

~/Views/Shared/EditorTemplates/DateTime.cshtml使用以下代码创建文件:

@model DateTime?
@Html.TextBox("", (Model.HasValue ? Model.Value.ToString("dd MMM, yyyy") : string.Empty))
于 2012-11-20T15:33:56.647 回答
1

问题是您在客户端指定日期时间格式,并且似乎完全忘记了服务器上发生的事情。首次加载视图时,值由 asp.net 视图引擎呈现,该引擎使用项目的当前 UI 文化信息将日期转换为字符串。您可以更改整个项目的文化或为 DateTime 类型创建编辑器模板,如答案之一中已建议的那样。

于 2012-11-21T08:30:52.983 回答