MVC4数据验证,页面不允许输入非实体类类型,如何解决?

问题描述

用MVC4创建了一个网站目标框架:.NETFramework4.0数据库:SQLite用的是“ADO.NET实体数据模型”的方式连接数据库的。生成的实体类publicpartialclassQueryInfo{[Key]publiclongQueryId{get;set;}[Display(Name="店名")][Required(ErrorMessage="必填")]publiclongShopCode{get;set;}[Display(Name="系统")][Required(ErrorMessage="必填")]publiclongSysTypeId{get;set;}[Display(Name="联系人")][Required(ErrorMessage="必填")]publicstringLinkman{get;set;}[Display(Name="反馈问题")][Required(ErrorMessage="必填")]publicstringQueryDetail{get;set;}[Display(Name="反馈时间")][Required(ErrorMessage="必填")]publiclongQueryTime{get;set;}}

QueryTime字段为long类型,本意是接收到“yyyy-MM-dd”格式的日期后转换成long类型。但在页面中无法输入日期格式。一直提示必须为数字,如何解决页面验证类型的问题呢?网页代码<divclass="row"><divclass="editor-label">@Html.LabelFor(model=>model.ShopCode)</div><divclass="editor-field">@Html.DropDownList("ShopCode",String.Empty)@Html.ValidationMessageFor(model=>model.ShopCode)</div><divclass="editor-label">@Html.LabelFor(model=>model.SysTypeId)</div><divclass="editor-field">@Html.DropDownList("SysTypeId",String.Empty)@Html.ValidationMessageFor(model=>model.SysTypeId)</div></div><divclass="row"><divclass="editor-label">@Html.LabelFor(model=>model.Linkman)</div><divclass="editor-field">@Html.EditorFor(model=>model.Linkman)@Html.ValidationMessageFor(model=>model.Linkman)</div><divclass="editor-label">@Html.LabelFor(model=>model.QueryTime)</div><divclass="editor-field">@Html.EditorFor(model=>model.QueryTime)})@Html.ValidationMessageFor(model=>model.QueryTime)</div></div><divclass="row"><divclass="editor-label">@Html.LabelFor(model=>model.QueryDetail)</div></div><divclass="row"><divclass="editor-text">@Html.TextAreaFor(model=>model.QueryDetail)})@Html.ValidationMessageFor(model=>model.QueryDetail)</div></div>

解决方案

解决方案二:
实体类声明为日期类型,long在后台业务层去转换
解决方案三:
反馈时间是long类型的、你输入的明显是个字符串么、
解决方案四:
为何你非要这么做,难道SqlLite不支持DateTime数据类型?Mark一下,目前我所知道的Asp.NetMVC框架还没有Converter之类的Attribute
解决方案五:
用时间空间多好,直接就是DateTime类型
解决方案六:
引用2楼u010811342的回复:

反馈时间是long类型的、你输入的明显是个字符串么、

+1
解决方案七:
我推荐用字符串~因为如果你用Datatime的话~IE会提示格式错误的,因为IE是用js看能不能转成Date的[Display(Name="反馈时间")][Required(ErrorMessage="必填")]publicstringQueryTime{get;set;}publiclongQueryTimeLong{get{returnQueryTime.tolong}伪代码自己改良一下
解决方案八:
反馈时间直接使用INPUT控件,跳过验证,在自己手动添加时间验证$(function(){$("#QueryTime").rules("add",{date:true})});但这样做只是跳过了前台验证,后台除非你自己new实体对象赋值在转换时间为long,否则让MVC赋值一样会报错,还是统一类型吧
解决方案:
你那个是时间类型。
解决方案:
引用6楼moonwrite的回复:

我推荐用字符串~因为如果你用Datatime的话~IE会提示格式错误的,因为IE是用js看能不能转成Date的[Display(Name="反馈时间")][Required(ErrorMessage="必填")]publicstringQueryTime{get;set;}publiclongQueryTimeLong{get{returnQueryTime.tolong}伪代码自己改良一下

这个方法不行,使用的是EF,字段QueryTimeLong在数据库表中不存在,运行会报错。
解决方案:
引用3楼lincolnandlinda的回复:

为何你非要这么做,难道SqlLite不支持DateTime数据类型?Mark一下,目前我所知道的Asp.NetMVC框架还没有Converter之类的Attribute

数据量大的时候,使用long类型的检索时间会比DateTime类型快。而且很多系统的时间都是用Unix时间戳来记录。

时间: 2024-12-25 22:54:12

MVC4数据验证,页面不允许输入非实体类类型,如何解决?的相关文章

java通过solr查询hbase数据,如何自动映射到java实体类?

问题描述 java通过solr查询hbase数据,如何自动映射到java实体类? 现在的情况是,使用simplehbase可以将查询结果自动映射到实体中,但simplehbase的过滤手段不如solr全面,能否将simplehbase与solr结合起来使用?如果可以,该怎么做呢?如果不可以,有没有办法可以达到以下目的?目的:1)可以模糊查询2)查询出的结果自动映射到java实体类中 解决方案 http://www.cnblogs.com/Leo_wl/p/4582018.html

mvc4-求助 &amp;amp;lt;MVC4&amp;amp;gt;一个视图,如何对应两个实体类

问题描述 求助 <MVC4>一个视图,如何对应两个实体类 我的页面需要从2张表中读取数据,这两张表有关联. 初次接触Mvc 还请大神帮帮忙 谢谢 解决方案 这很简单: class MyViewModel { public 第一个模型 M1 { get; set; } public 第二个模型 M2 { get; set; } } 将MyViewModel作为你的模型 解决方案二: 写成一个类存放 sql语句直接写,但是字段名称和类中字段名称要对应 解决方案三: 页面我是用 @ViewBag 调

动态赋值-C# 后台动态将实体类的值赋给前台页面

问题描述 C# 后台动态将实体类的值赋给前台页面 C#后台动态将实体类的值赋值给前台网页,由于是从其他页面跳转过来的,在赋值操作的时候,由于当前页面还没加载完成,导致在赋值的无法找到当前页面的控件,所以无法赋值..... 解决方案 你不是在page_load事件里付值的么 解决方案二: "在赋值操作的时候,由于当前页面还没加载完成,导致在赋值的无法找到当前页面的控件,所以无法赋值",你分析的不对,如果是服务器控件,一定可以找到,和页面没有加载没有关系.检查下你的代码哪里错了,报什么错.

异步请求数据赋值到实体类对应的变量

问题描述 异步请求数据赋值到实体类对应的变量 如何让$.ajax发送的异步请求中的data数据赋值给被请求的方法实体类? 解决方案 下面链接是springmvc的写法,接收json串,通过@RequestBody映射实体类http://blog.csdn.net/yangtang_newton/article/details/7525800 解决方案二: 传个回调函数进success里面,success里面这么写 success:function(data){ callback(data): }

构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(33)-数据验证共享

原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(33)-数据验证共享 注:本节阅读需要有MVC 自定义验证的基础,否则比较吃力 一直以来表单的验证都是不可或缺的,微软的东西还是做得比较人性化的,从webform到MVC,都做到了双向验证 单单的用js实现的前端验证是极其不安全的,所以本次我们来看看MVC上的自带的注解验证,自定义验证 同样的MVC提供了一系列内置的数据验证注解 不为空验证  [Required(ErrorMessage = "不能为空

JQuery 简便实现页面元素数据验证功能_jquery

ASP.NET提供了丰富的数据验证控件,但这个验证功能都必须运用在服务器控件中:在复合验证数据时使用也不是很方便(虽然拖放控件很方便,但拖放数增多和设置相关属性就变得很麻烦的事情).为了更方便灵活地实现验证功能,于是采用了JQuery编写了一个简单验证组件,在使用时只需要简单的描述一下验证规则,并不需要写一句JavaScript就可以实现具备ASP.NET验证控件的功能(当然页面要引入相关JavaScript文件). 功能目标        通过简单的自定义属性值描述具体的验证功能,当Form提

excel-asp.net mvc4如何实现页面数据导出到Excel表,有完整代码吗?本人新手,求大神

问题描述 asp.net mvc4如何实现页面数据导出到Excel表,有完整代码吗?本人新手,求大神 如题,asp.net mvc4如何实现页面数据导出到Excel表,有完整代码吗?本人新手,求大神 解决方案 最简单的方式是使用npoihttp://www.tuicool.com/articles/NNzMNn 解决方案二: 你可以采用OLEDB的方式进行导出,也就是采用数据库的方式,你可以在服务器上面配置一个tmp目录,先将数据文件采用OLEDB导出到这个文件中, 在通过文件下载的方式获取这个

.net mvc4.0 views 页面中如何嵌套循环展示数据

问题描述 .net mvc4.0 views 页面中如何嵌套循环展示数据 子父级菜单之类的数据. .net mvc4.0 views 页面中如何嵌套循环展示数据 另外有没有办法通过sql,在model中定义list并给list赋值,从数据源头把他们赋值好. 我用的是Dapper orm 解决方案 简单,类似treeview,用局部模板,递归调用.自己找treeview加载的例子,原理一样的. 解决方案二: 可以看看前台框架easyui,官网上例子很多,list转完json后,直接绑定即刻 解决方

《HTML5实战》——第2章 创建表单:输入小部件、数据绑定以及数据验证

第2章 创建表单:输入小部件.数据绑定以及数据验证 本章主要内容 新的HTML5输入类型与属性 data-*属性,valueAsNumber元素以及output元素 约束验证API 绕过数据验证的方法 CSS3伪类 利用Modernizr进行HTML5特性侦测,利用polyfill进行回退兼容随着Web的日益成熟,用户开始需求更为丰富的表单字段类型及小部件,他们希望能有一种在各种Web应用中都通用的统一标准,特别是当涉及到数据验证时.HTML5充分迎合了这种需求,提供了13种新的表单输入类型,其