最近在开动科技创新作品的开发,出现了一个让人很烦恼的错误,每次从浏览页跳转到编辑页时就会出现一下错误

非介入式客户端验证规则中的验证类型名称必须唯一。下列验证类型出现重复: required

上一下出错的代码

model

 public partial class td_students
{ [StringLength()]
[Key]
[HiddenInput(DisplayValue = false)]
public string Id { get; set; } [Required]
[StringLength()]
[Display(Name = "学号")]
public string school_code { get; set; } [Required]
[StringLength()]
[Display(Name = "姓名")]
public string student_name { get; set; } [StringLength()]
[Display(Name = "年级")]
public string grade { get; set; } [StringLength()]
[Display(Name = "院系")]
public string dept { get; set; } [StringLength()]
[Display(Name = "专业")]
public string major { get; set; } [StringLength()]
[Display(Name = "班级")]
public string banji { get; set; } [StringLength()]
[Display(Name = "性别")]
public string gender { get; set; } [StringLength()]
[Display(Name = "民族")]
public string nation { get; set; } [Display(Name = "出生日期")]
public DateTime? born_date { get; set; } [StringLength()]
[Display(Name = "手机号码")]
public string telephone { get; set; } [StringLength()]
[Display(Name = "政治面貌")]
public string politicstatus { get; set; } [StringLength()]
[Display(Name = "身份证号码")]
public string ID_card { get; set; } [StringLength()]
[Display(Name = "户籍")]
public string native_place { get; set; } [StringLength()]
[Display(Name = "家庭住址")]
public string address { get; set; } [StringLength()]
[Display(Name = "家庭联系电话")]
public string home_telephone { get; set; } [Display(Name = "入学时间")]
public DateTime? rollin_date { get; set; } [StringLength()]
[Display(Name = "宿舍")]
public string dormitory { get; set; } [StringLength()]
[Display(Name = "照片")]
public string imageurl { get; set; } public bool? audit { get; set; } [Column("lock")]
public bool? _lock { get; set; }
}

前端代码:

 @using (Html.BeginForm("Edit", "Student", FormMethod.Post, new { enctype = "mutipart/form-data", @class="form-inline" }))
{
<div class="panel-body">
@Html.Hidden("studentId", Model.Id)
@foreach (var property in ViewData.ModelMetadata.Properties)
{
switch (property.PropertyName)
{
case "Id":
case "audit":
case "_lock":
case "imageUrl":
break;
default:
<div class="form-group">
<label>@(property.DisplayName ?? property.PropertyName)</label>//这里就抛出异常
@Html.TextBox(property.PropertyName, null, new { @class = "form-control form-inline input-sm" })
@Html.ValidationMessage(property.PropertyName)
</div>
break;
}
} </div>
}

国内搜索引擎搜索不到任何相关的解决方案 使用google搜索,终于StackOverflow的在不起眼的小角落里找到了解决办法

翻译过来就是因为引入了Ninject.MVC3这个包,出现了注入验证,卸载Ninject重装之后就解决了问题

我的项目中也使用了Ninject来做依赖注入  安装的是Ninject.MVC5这个包 卸载重装之后搞定

真的是揪心啊

这里说一句,遇到问题国内搜索引擎搞不定,就去StackOverflow.com 一般都可以找到解决方案

解决.Net MVC 中出现 非介入式客户端验证规则中的验证类型名称必须唯一。下列验证类型出现重复: required 的bug的更多相关文章

  1. 出现异常: 非介入式客户端验证规则中的验证类型名称必须唯一。下列验证类型出现重复: required

    在将web.config文件中的<add key="ClientValidationEnabled" value="false" /> 设为fals ...

  2. 在自定义的js验证规则中调用magento的VarienForm方法验证表单

    js部分<script type="text/javascript"> //<![CDATA[ var loginForm = new VarienForm('l ...

  3. [Asp.net MVC]Asp.net MVC5系列——在模型中添加验证规则

    目录 概述 在模型中添加验证规则 自定义验证规则 伙伴类的使用 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列——第一个项目 [Asp.net MVC]Asp.net MVC5 ...

  4. Java IO(3)非阻塞式输入输出(NIO)

    在上篇<Java IO(2)阻塞式输入输出(BIO)>的末尾谈到了什么是阻塞式输入输出,通过Socket编程对其有了大致了解.现在再重新回顾梳理一下,对于只有一个“客户端”和一个“服务器端 ...

  5. ASP.NET MVC基于标注特性的Model验证:一个Model,多种验证规则

    原文:ASP.NET MVC基于标注特性的Model验证:一个Model,多种验证规则 对于Model验证,理想的设计应该是场景驱动的,而不是Model(类型)驱动的,也就是对于同一个Model对象, ...

  6. Asp.net MVC验证那些事(1)-- 介绍和验证规则使用

    数据的有效性验证,是程序开发中必不可少的环节.这篇文章,我们将用一个实例来说明如何在MVC中使用Validation来保证无论是新增或者更新数据的时候,都必须符合我们定义的验证规则,否则就会提示错误. ...

  7. Asp.net MVC验证那些事(1)-- 介绍和验证规则使用----[转]--[并修改了部分内容]

    Asp.net MVC验证那些事(1)-- 介绍和验证规则使用 -----原文地址链接 数据的有效性验证,是程序开发中必不可少的环节.这篇文章,我们将用一个实例来说明如何在MVC中使用Validati ...

  8. MVC验证03-自定义验证规则、禁止输入某些值

    原文:MVC验证03-自定义验证规则.禁止输入某些值 本文继续体验自定义验证规则,需求是禁止输入某些值.本文与前2篇相关,请参考:MVC验证01-基础.远程验证   MVC验证02-自定义验证规则.邮 ...

  9. MVC的验证(模型注解和非侵入式脚本的结合使用) .Net中初探Redis .net通过代码发送邮件 Log4net (Log for .net) 使用GDI技术创建ASP.NET验证码 Razor模板引擎 (RazorEngine) .Net程序员应该掌握的正则表达式

    MVC的验证(模型注解和非侵入式脚本的结合使用)   @HtmlHrlper方式创建的标签,会自动生成一些属性,其中一些属性就是关于验证 如图示例: 模型注解 通过模型注解后,MVC的验证,包括前台客 ...

随机推荐

  1. 如何多个router 进行合并?

    有时间可能有多个人开发,如果在共用router, 势必会造成合并冲突,可以分开多个router.js ,然后进行合并 // router0.jsconst studyRouter = [ { path ...

  2. WPFの多屏幕问题

    public MainWindow(string sysName, int timeState) { InitializeComponent(); //查找当前屏幕数量 ) { Dispatcher. ...

  3. win10下RabbitMQ的安装和配置

    在win10环境下安装RabbitMQ的步骤 第一步:下载并安装erlang 原因:RabbitMQ服务端代码是使用并发式语言Erlang编写的,安装Rabbit MQ的前提是安装Erlang. 下载 ...

  4. iOS 点击按钮截屏

    @interface CaptureViewController () @property (nonatomic, strong) UIImageView *backgrounView; //控制器背 ...

  5. 二、sql新增后返回主键|sql 使用 FOR XML PATH实现字符串拼接|sql如果存在就修改不存在就新增

    一.sql新增后返回主键 1,返回自增的主键: INSERT INTO 表名 (字段名1,字段名2,字段名3,…) VALUES (值1,值2,值3,…) SELECT @@IDENTITY 2,返回 ...

  6. 五、bootstrap-Table Treegrid

    一.bootstrap-Table Treegrid <!DOCTYPE HTML> <html lang="zh-cn"> <head> &l ...

  7. mysql内连接(inner join 找两个表的交集)、左连接(left join 交集并且左表所有)、右连接(right join 交集并且右表所有)、全连接(mysql不支持)

    用两个表(a_table.b_table),关联字段a_table.a_id和b_table.b_id来演示一下MySQL的内连接.外连接( 左(外)连接.右(外)连接.全(外)连接). MySQL版 ...

  8. Ubuntu 16.04 install R language

    apt-get install r-base r-base-dev

  9. java基础学习笔记六(继承)

    继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父 ...

  10. cocos2D-X 屏幕适配

    { //https://v.youku.com/v_show/id_XNTIzOTM1MDYw.html }