当前位置:编程学习 > C#/ASP.NET >>

mvc数据验证的问题

mvc的实体类中有:

        public int id { set; get; }
        [Required(ErrorMessage="价格必须填写")] 
        public float price { set; get; }
        public string address { set; get; }
        public DateTime intTime { set; get; }



 <tr>
                <td>id</td>
                <td><input type="text" id="id" name="id" /></td>
            </tr>
            <tr>
                <td>price</td>
                <td>@Html.TextBoxFor(model => model.price)</td>
                <td>@Html.ValidationMessageFor(model => model.price)</td>
            </tr>
              <tr>
                <td>address</td>
                <td>@Html.TextBoxFor(model => model.address)</td>
            </tr>
            <tr>
                <td>intime</td>
                <td>@Html.TextBoxFor(model => model.intTime)</td>
            </tr>

启用mvc自带的客户端验证后,不填写数据直接submit提交后,int类型id,datetime类型inTime都会进行验证(输入框变红)。我没在id、inTime上加验证属性呀?是什么原因造成的?怎么解决呢? --------------------编程问答-------------------- int,DateTime是指类型,不能为空
试试
public int? id { set; get; }
public DateTime? intTime { set; get; } --------------------编程问答--------------------
引用 楼主 aiyaoo 的回复:
mvc的实体类中有:

        public int id { set; get; }
        [Required(ErrorMessage="价格必须填写")] 
        public float price { set; get; }
        public string address { set; get; }
        public DateTime intTime { set; get; }



 <tr>
                <td>id</td>
                <td><input type="text" id="id" name="id" /></td>
            </tr>
            <tr>
                <td>price</td>
                <td>@Html.TextBoxFor(model => model.price)</td>
                <td>@Html.ValidationMessageFor(model => model.price)</td>
            </tr>
              <tr>
                <td>address</td>
                <td>@Html.TextBoxFor(model => model.address)</td>
            </tr>
            <tr>
                <td>intime</td>
                <td>@Html.TextBoxFor(model => model.intTime)</td>
            </tr>

启用mvc自带的客户端验证后,不填写数据直接submit提交后,int类型id,datetime类型inTime都会进行验证(输入框变红)。我没在id、inTime上加验证属性呀?是什么原因造成的?怎么解决呢?

不是说自带的验证?。。。 --------------------编程问答-------------------- 你确定代码贴全了? 不会加属性是不会进行校验的。 --------------------编程问答-------------------- 楼上int float类型不加属性会验证,是什么原因呀? --------------------编程问答--------------------
引用 1 楼 KaddyChan 的回复:
int,DateTime是指类型,不能为空
试试
public int? id { set; get; }
public DateTime? intTime { set; get; }


引用 4 楼 aiyaoo 的回复:
楼上int float类型不加属性会验证,是什么原因呀?

int,float,DateTime都是值类型,不能为空,你传个空值过去,不能通过验证
查一下值类型和引用类型的区别
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,