【发布时间】:2011-08-31 10:32:55
【问题描述】:
我有一个 asp.net mvc 3 应用程序,现在正尝试向它添加一些验证。我正在使用干净的解决方案进行测试。我不希望验证发生在客户端(现在),所以我在 Web.config 中禁用了它:
<add key="ClientValidationEnabled" value="false"/>
我有一个实现 IValidatableObject 的简单类,我想使用 Validate 函数进行验证(而不是属性)。
public class SomeClass : IValidatableObject
{
public int Id { get; set; }
public int LowNumber { get; set; }
public int HighNumber { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (LowNumber > HighNumber)
{
yield return new ValidationResult("LowNumber should not be higher than HighNumber.");
}
}
}
现在回答问题。服务器端验证是否自动应用,如何应用?如何禁用此功能?我想自己控制这个 - 在我的帖子操作中说这样的话:
[HttpPost]
public string SomeAction(SomeClass model)
{
if (TryValidateModel(model))
return "All good";
else
return "No good";
}
这样做会使验证被调用 - 并显示 - 两次。一次用于此电话,一次来自其他人。谁?
【问题讨论】:
-
你想在运行时处理数据验证,对吗?
-
不确定你的意思,但我想在发布请求到达服务器时处理验证。
标签: .net asp.net-mvc-3 validation