0
我有一个控制器,我不想验证,当被调用时。ValidateInput(false)仍然触发在IValidatableObject中的验证
我的控制器:
[Authorize(Roles = "Admin")]
[HttpPost]
[ValidateInput(false)]
public ActionResult Delete(MyLINQClass model)
{
// Do something
}
我的模型:
[MetadataType(typeof(MyLINQClass MetaData))]
public partial class MyLINQClass : DefaultModel, IValidatableObject
{
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
// Do validation
}
}
我不希望验证被触发,我想加入[ValidateInput(false)]
会有所帮助。但Validate()
仍然被触发。
im使用ASP MVC 3和.NET 4.
感谢您的评论。我想我可以创建另一个视图模型,但问题是'MyViewModel'正在扩展一个LINQ类。所以如果我创建一个新的视图模型,我仍然会包含'MyViewModel'。 – Martin
@Martin,视图模型不应该扩展任何域实体,比如LINQ类。它们应该是独立的,并且与特定观点的要求特别相关。例如,在你的情况下,你有不同的验证逻辑,所以不同的视图模型是合理的。您的控制器操作只采用视图模型并将视图传递给视图,而不是任何域实体,这是一种很好的做法。 –
好的,我在那里看到你的逻辑。我会尝试做一些改变。 – Martin