我的团队正在构建 ViewModel,并在 MetadataType 中进行模型验证。我的问题是,我使用的是非 MVC 项目,我可以用它来验证模型吗?如果是,您能举个例子吗?
[MetadataType(typeof(PersonMetadata))]
public class Person
{
public int ID { get; set; }
public string Name { get; set; }
}
public class PersonMetadata
{
[StringLength(255, ErrorMessage="Name is required"), Required]
[DisplayName("Name")]
public string Name { get; set; }
}
先感谢您!
我认为这不是一个好的做事方式。一般来说,使用元数据类是一种设计味道。我最近被开启了.NET 的流畅验证看起来非常有前途,可以针对 MVC 进行插入,但不需要 MVC。
话虽这么说,这是可行的:
var person = new Person();
var controllerSlashValidator = new FakeControllerValidator();
ModelStateDictionary modelStateDictionary;
bool isValid = controllerSlashValidator.Validate(person,out modelStateDictionary);
这段代码需要FakeControllerValidator
below
public class FakeControllerValidator: Controller
{
public FakeControllerValidator()
{
this.ControllerContext = new ControllerContext(new RequestContext(new HttpContextWrapper(System.Web.HttpContext.Current),new RouteData()),this);
}
public bool Validate(object model, out ModelStateDictionary modelStateDictionary)
{
bool isValid = TryValidateModel(model);
modelStateDictionary = ModelState;
return isValid;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)