MVC3 - jQuery不显眼的验证

时间:2011-05-16 05:28:16

标签: asp.net-mvc-3

我是MVC的新手,需要针对我遇到的问题提供一些指导。

我有一个文本字段,用于包含使用日期选择器的日期。在模型中,我没有指定验证文本字段。

但是我提交了表单,jQuery unobstrusive验证了日期文本字段。

模型

Using System;
Using System. Collections. Generic;
Using System. ComponentModel;
Using System. ComponentModel. DataAnnotations;
Using System. Linq;
Using System. Web;
Using DataAnnotationsExtensions;


Namespace heavy_haulage_general_freight. Models
{

    public class nsc_gf_job
    {
        [Key]
        public int id { get; set; }
        public DateTime pickup_date { get; set; }
    }
}

视图

@model heavy_haulage_general_freight. Models. Nsc_gf_job    
@using heavy_haulage_general_freight. Helpers

@{
    ViewBag.Title = "Create";
}

<h2>Create</h2>

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

<fieldset>
    <legend>Resources Division Heavy Haulage Details:</legend>
        <table>
            <tbody>
                <tr>
                    <td>@Html.Label("Pickup Date")</td>
                    <td>
                        @Html.TextBox("pickup_date", "") <br />
                        @Html.ValidationMessage("pickup_date")
                    </td>                
                <tr>
            </tbody>
        </table>
    </fieldset>


        <p>
            <input type="submit" value="Create" />
        </p>

}

2 个答案:

答案 0 :(得分:3)

尝试使用可以为空的日期 - 即

 public DateTime? pickup_date { get; set; }

还要注意这也适用于int,因为int没有'empty'默认值,你需要一个可以为空的值

答案 1 :(得分:2)

这是因为您在模型中定义了DateTime类型的属性。此类型将始终进行验证,因为您无法为此类字段分配无效值。