类:
public class XX { [DisplayName("申报序号")] [Required(ErrorMessage = "申报序号申报序号不能为空")] [Range(1,16, ErrorMessage = "最大长度16")] public string SBXH { get; set; } }
程序中:
public class getXX()
{
XX model=new XX();
model.SBXH="123456789123456789";//超过16位了,
//验证开始
}
getXX是普通的方法类。
请问用什么方法,可以用 模型类XX定义的验证规则 验证model.SBXH是否符合规则?????这个不是asp.net mvc ,就是在普通的类里面验证。
就是如何把 模型类XX定义的验证规则 添加到ModelState中
Model.IsValied,差不多是这个?
是ModelState.IsValid
mvc中是ModelState.IsValid这样验证的,ModelState是ModelStateDictionary类型;asp.net mvc 可以把实体类的规则传给ModelStateDictionary;;;;但是我现在不是mvc,知道怎么传吗?
@弦断有谁听: 我觉得应该就是你上面的viewmodel已经定义了相关的规则,会自动触发每一个属性(字段)的验证的。。。
@顾晓北: 我代码就是一个普通的类,ModelState.IsValid这样写报错,ModelState没有这个属性。
这样子写,才有isValid属性。现在就是怎么把规则,,传给ms的问题。
ModelStateDictionary ms = new ModelStateDictionary();
if (ms.IsValid)
{
}
@弦断有谁听: 你action的参数是什么?
@顾晓北: 不是action,就是一个普通类getXX(String SBXH),参数是一个字符串。
@弦断有谁听: 你action的参数改成xx试试?
@顾晓北:不行的哦
@弦断有谁听: 不行?我意思是你action的参数改成你的XX类型,然后,在Action里面用ModelState.IsValid,你的XX类型的需要验证的属性,写上相应的Attribute。。。
自己写一个判断不就好了.
可以自己写。但是想在Model 上用[]这样的形式写规则的==,感觉方便写。
@弦断有谁听: 自己写一个解析这些不就好了
@吴瑞祥: 如果微软没有自动解析的,,,那没办法,就得自己写了。
@弦断有谁听: 去扣mvc的代码不就好了
自定义一个HttpModule去横切