asp.net-mvc – MVC2中的REQUIRED String属性的服务器端验证实体框架4不起作用
|
我试图让一个实体框架字符串属性的服务器端验证工作.其他服务器端验证(如数据类型验证和所需的dateTime和数字EF属性)正在工作. 这在VS 2010,.Net 4.0,MVC2 Cloud,ADO.Net实体框架. 我有问题的字符串属性映射到SQL 2008,Varchar(50)不可空列. 当我尝试使用此属性的空字符串发布到我的创建操作时,我会收到以下错误.
当我以空白的方式发布到动作时,我成功获取了一个必需的字段验证消息. 我已经尝试使用数据注释和ClientSideValidation,但似乎有一些ClientSideValidation在部分视图和jquery对话框中工作. 这是实体框架的原始自动生成代码. [EdmScalarPropertyAttribute(EntityKeyProperty=false,IsNullable=false)]
[DataMemberAttribute()]
public global::System.String GradeTypeName
{
get
{
return GradeTypeName;
}
set
{
OnGradeTypeNameChanging(value);
ReportPropertyChanging("GradeTypeName");
_GradeTypeName = StructuralObject.SetValidValue(value,false);
ReportPropertyChanged("GradeTypeName");
OnGradeTypeNameChanged();
}
}
根据Action方法(CREATE或EDIT)的签名,在调用UpdateModel()方法之前或方法中可能会发生异常.内部异常是在model.designer.cs文件的下方. _GradeTypeName = StructuralObject.SetValidValue(value,false); 我已经能够在一个简单的mvc2 Web应用程序上重现. 解决方法我有同样的问题一段时间.我在这里找到了一个解释: http://mvcmusicstore.codeplex.com/workitem/6604.简而言之,实体的属性验证引发了异常“System.Data.ConstraintException:此属性不能设置为空值”.当您的mvc应用程序尝试将表单域绑定到相应的实体属性(称为PreBinding验证,并在提交表单时发生),则会执行此验证.由于该字段为空(因此转换为null),绑定器尝试将一个空值绑定到该属性,这违反了您的实体的属性的非空限制.但是,如果您发布一个空白字段(不同于空,因此为空)实体验证通过(因为该属性未设置为空值),然后您可以从“必需”注释验证看到该消息,该在预绑定之后执行(它是PostBinding验证). 解决方法是使用告示您的绑定器不将空字符串转换为空的[DisplayFormat(ConvertEmptyStringToNull = false)]注释. [Required]
[DisplayFormat(ConvertEmptyStringToNull = false)]
public string YourStringProperty { get; set;}
希望这可以帮助! (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 如何在页面加载中以编程方式向页面添加控件?
- asp.net – 应用程序池标识或模拟
- asp.net-mvc-3 – ASP.NET MVC3从https重定向到http
- asp.net – 如何查看Chrome开发者工具中发布到表单的数据大
- asp.net-mvc – 使用AWS .NET SDK进行SNS订阅确认示例
- ASP.NET代码隐藏中的当前工作目录 – 我们可以依赖它吗?
- asp.net – 评论未使用的代码会不会给我的页面带来任何方式
- asp.net – 在脚本标签src属性中使用波浪号
- asp.net-mvc – 在父视图顶部的Jquery模态弹出窗口中渲染局
- asp.net-mvc-4 – 在主机上找不到Clearscript文件
- asp.net – Web Api 2:“样例不可用”
- asp.net-mvc – 如何访问querystring在ASP.Net M
- asp.net-mvc-5 – 如何让Glimpse与EF6合作?
- asp.net – Mono vhost配置错误:地址已经在使用
- asp.net-mvc – 如何检查用户是否在Action中被授
- ASP.NET Azure中的Trace.WriteLine
- ASP.NET UserControl类库
- asp.net-mvc-4 – 在控制器的新窗口中打开mvc视图
- 寻找一个使用Lucene.net与ASP.NET的例子
- asp.net-mvc – 使用ASP.NET MVC /实体框架对POC
