.net mvc非codefirst中,如何像codefirst中一样给字段预设 不能为空 之类的说明

.netmvc的codefirst中,我知道可以使用[]加属性说明的方式来标定字段必要性以及对应的说明,比如user的name字段,可以设置为不能为空,用户在前台填写的时... .net mvc的codefirst中,我知道可以使用[]加属性说明的方式来标定字段必要性以及对应的说明,比如user的name字段,可以设置为不能为空,用户在前台填写的时候若为空则自动提示。但是,若是我不以codefirst的方式呢,我以数据库优先的方式怎么样才能也达到自动提示用户的效果? 展开
 我来答
depluin
2013-04-11 · TA获得超过3179个赞
知道大有可为答主
回答量:3378
采纳率:75%
帮助的人:2466万
展开全部
用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();
}
shi_junan1234
2013-04-12
知道答主
回答量:3
采纳率:0%
帮助的人:4447
展开全部

看你需要了,你想要自动提示用户的效果 为什么不用 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
});
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式