.net mvc非codefirst中,如何像codefirst中一样给字段预设 不能为空 之类的说明
.netmvc的codefirst中,我知道可以使用[]加属性说明的方式来标定字段必要性以及对应的说明,比如user的name字段,可以设置为不能为空,用户在前台填写的时...
.net mvc的codefirst中,我知道可以使用[]加属性说明的方式来标定字段必要性以及对应的说明,比如user的name字段,可以设置为不能为空,用户在前台填写的时候若为空则自动提示。但是,若是我不以codefirst的方式呢,我以数据库优先的方式怎么样才能也达到自动提示用户的效果?
展开
展开全部
用MetadataType啊。比如:
指定要与数据模型类关联的元数据类
using System.ComponentModel.DataAnnotations;
//指定要与数据模型类关联的元数据类
[MetadataType(typeof(Product_MetaData))]
public partial class Product
{
public Product()
{
this.ProductGuid = Guid.NewGuid();
this.AddTime = DateTime.Now;
}
public class Product_MetaData
{
public Guid ProductGuid { get; set; }
[Required(ErrorMessage = "产品名称不能为空")]
public string ProductName { get; set; }
public DateTime AddTime { get; set; }
}
}
这样关联之后,可以做一些初始化的工作,还可以做一些验证,以及自定义的验证错误信息,相当于是扩展了Model实体
因为做验证都是在Model层做的,这样好维护,所以需要做元数据,与ADO.NET实体数据模型关联起来。
比如产品价格需要做个输入验证,怎么做呢,请看
[RegularExpression(@"^(\d+)(.\d+)?", ErrorMessage = "价格格式错误")]
[Required(ErrorMessage = "*")]
public double ProductPrice { get; set; }
对不对,是不是很好的进行了扩展,以后需要修改验证,只要在这个元数据类里面修改即可。
Controller层调用的时候,验证代码
if (!ModelState.IsValid)
{
return View();
}
指定要与数据模型类关联的元数据类
using System.ComponentModel.DataAnnotations;
//指定要与数据模型类关联的元数据类
[MetadataType(typeof(Product_MetaData))]
public partial class Product
{
public Product()
{
this.ProductGuid = Guid.NewGuid();
this.AddTime = DateTime.Now;
}
public class Product_MetaData
{
public Guid ProductGuid { get; set; }
[Required(ErrorMessage = "产品名称不能为空")]
public string ProductName { get; set; }
public DateTime AddTime { get; set; }
}
}
这样关联之后,可以做一些初始化的工作,还可以做一些验证,以及自定义的验证错误信息,相当于是扩展了Model实体
因为做验证都是在Model层做的,这样好维护,所以需要做元数据,与ADO.NET实体数据模型关联起来。
比如产品价格需要做个输入验证,怎么做呢,请看
[RegularExpression(@"^(\d+)(.\d+)?", ErrorMessage = "价格格式错误")]
[Required(ErrorMessage = "*")]
public double ProductPrice { get; set; }
对不对,是不是很好的进行了扩展,以后需要修改验证,只要在这个元数据类里面修改即可。
Controller层调用的时候,验证代码
if (!ModelState.IsValid)
{
return View();
}
展开全部
看你需要了,你想要自动提示用户的效果 为什么不用 jquery的 验证插件jquery.validate.min.js
比如一个News类的编辑页面 form 下面 有 几个输入框 下拉框什么的
定义好验证信息什么的 文本框市区焦点的时候验证 提交的时候验证等等比如
function validateForm() {
$("#formEdit").validate({
rules: {
TID: {
required: true
},
Desc: {
required: true
},
EditContent: {
required: true
},
InitContent:{
required: true
},
BindData:{
required: true
}
},
messages: {
TID: {
required: "请输入模板标识!"
},
Desc: {
required: "请输入模板名称!"
},
EditContent: {
required: "请输入模板内容!"
},
InitContent: {
required: "原始模板内容不能为空!"
},
BindData: {
required: "不能为空"
}
},
errorPlacement: function (error, element) { // 插入错误信息
element.parent().append(error);
var errortips = $(error).html();
$(error).html(errortips);
},
highlight: function (element, errorClass, validClass) { // element出错时触发
$(element).removeClass('tx').addClass('error_input');
},
unhighlight: function (element, errorClass) { // element通过验证时触发
$(element).removeClass('error_input').addClass('tx');
},
invalidHandler: function (form, validator) {
if (validator.numberOfInvalids()) {
var invalidElements = validator.invalidElements();
if (invalidElements.length > 0) {
$(invalidElements[0]).focus();
}
}
},
onkeyup: false
});
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询