.net – Textboxfor mvc3日期格式和日期验证

我已经决定开始使用MVC 3,当我尝试重新调整我的一个Web应用程序到MVC3时遇到这个问题.

我有这样的项目设置:

public class Project
{
    public int      ProjectID       { get; set; }

    [required(ErrorMessage="A name is required")]
    public string   Name            { get; set; }

    [displayName("Team")]
    [required(ErrorMessage="A team is required")]
    public int      TeamId          { get; set; }

    [displayName("Start Date")]
    [required(ErrorMessage="A Start Date is required")]
    [displayFormat(ApplyFormatInEditMode=true,DataFormatString="{0:d}")]
    public DateTime StartDate       { get; set; }

    [displayName("End Date")]
    [required(ErrorMessage="An End Date is required")]
    [displayFormat(ApplyFormatInEditMode = true,DataFormatString = "{0:d}")]
    public DateTime EndDate         { get; set; }
}

我的报名表格是以这种方式写的:

<table>
    <tr>
        <td>
            <div class="editor-label">
                @Html.LabelFor(model => model.StartDate)
            </div>
        </td>
        <td>
            <div class="editor-label">
                @Html.LabelFor(model => model.EndDate)
            </div>
        </td>
    </tr>
    <tr>
        <td>
            <div class="editor-field">
                @Html.TextBoxFor(model => model.StartDate,new { @class = "datepicker",id="txtStartDate" })
                @Html.ValidationMessageFor(model => model.StartDate)
            </div>
        </td>
        <td>
            <div class="editor-field">
                @Html.TextBoxFor(model => model.EndDate,id = "txtEndDate" })
                @Html.ValidationMessageFor(model => model.EndDate)
            </div>
        </td>
    </tr>
</table>

我的问题是文本框现在显示01 / Jan / 0001 00:00:00.
那么第一:我怎么才能得到一个缩写的日期?
我发现一个MVC2 solution,建议在SharedFolder中创建一个EditorTemplates文件夹,并使用EditorFor,但似乎并没有使用MVC3.它似乎也阻止了添加类容易像TextBoxFor一样

其次,一旦修复,我有一个特殊的验证系统,我需要到位.我需要结束日期在开始日期之后.我正在考虑用javascript我发现了http://www.datejs.com,但是有没有办法直接在我的课上进行验证?

解决方法

对于您的编辑模板尝试这个
@model DateTime?
@Html.TextBox("",(Model.HasValue ? Model.Value.ToShortDateString() : string.Empty),new { @class = "datePicker" })

资料来源:MVC 3 Editor Template with DateTime

jQuery DateTime比较

$('#txtBox').change(function() {
            var date = $(this).val();
            var arrDate = date.split("/");
            var today = new Date();
            useDate = new Date(arrDate[2],arrDate[1] -1,arrDate[0]);

            if (useDate > today) {
                alert('Please Enter the correctDate');
                $(this).val('');
            }
        });

资料来源:Jquery date comparison

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...