【发布时间】:2010-06-06 15:30:50
【问题描述】:
我正在构建一个 ASP.NET Mvc 应用程序。我有一个数据模型说用户
public class user
{
public int userId {get; private set};
public string FirstName {get; set;}
}
要进行的验证是名字不能超过 50 个字符。
我有另一个演示模型,其中我也有属性 FirstName。我不想在两个模型中重复验证逻辑。我想把它放在一个地方,应该就是这样。
我可以通过添加一个可以在设置属性时调用的函数以更简单的方式做到这一点
private string firstName;
public string FirstName
{
get
{
return firstName;
}
set
{
if (PropertyValidator.ValidName(value)) // assuming ValidName exists and it will throw an exception if the value is not valid
{
firstName = value;
}
}
}
但我正在寻找更简单的东西,这样我就不需要为我需要验证它的每个属性添加它。我查看了 ValidationAttribute,但我只能从控制器 (ModelState.IsValid) 验证这一点。由于此模型可以被其他类型的应用程序(如控制台应用程序)使用,因此我无法选择。但是,如果有一种方法可以从控制器外部使用 Mvc 的 ModelState.IsValid,那就太棒了。非常感谢任何建议。
谢谢!!
【问题讨论】:
标签: c# asp.net-mvc validation model