2

因此,我使用ASP.NET MVC 3和實體框架4.1(代碼優先)。如何以編程方式打開/關閉數據註釋驗證屬性

我有這樣一個類:

public class Person 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
    [Range(18, 99)] 
    public int Age { get; set; } 
} 

範圍驗證正確解僱。但是,例如,在某些情況下,我想更改Age屬性的範圍。甚至關掉它。我怎麼能做到這一點,而不改變我的模型類?這可能是編程式的嗎?

+0

你能說清楚'某些情況'是什麼意思嗎?你的意思是不同的行爲? –

+0

示例:用戶可以獲得創建14歲的人的授權。要明確,我的問題不是解決有問題的問題,而是更多關於如何處理MVC體系結構問題。 – iuristona

回答

1

我剛剛意識到這種情況下的解決方案。

例如,用戶可以授權創建一個14歲的人。

之前保存的模型,我們可以調用DataContext.GetValidationErrors()和推斷,如果唯一的錯誤驗證的是,我們要禁用,然後設置

DataContext.Configuration.ValidateOnSaveEnabled = FALSE;

所以,這樣我們就可以保存模型。

0

是的,可以以編程方式注入驗證器。改變現有的驗證器會出現單獨的問題,因爲某些屬性是隻讀的,所以您可能需要刪除並替換現有的驗證器。

您可以按照我的回答to this question添加一個類來處理驗證器。

相關問題