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